JSON到NSMutableArray在Swift 2.3 iOS 10中停止工作



我有一个代码来消费一个REST服务,但它停止工作后更新到swift 2.3和iOS 10。我在JSON中得到错误到NSMutableArray转换:

  class func getStores(latitude:Float, longitude: Float,  completion : (Array<Store>?, NSError?) -> ()) {
    let latString: String = "(latitude)"
    let lonString: String = "(longitude)"
    var listStores: Array<Store> = []
    let urlFull : String = ConstantHelper.baseURLStore
         Alamofire.request(.GET, urlFull, parameters: ["latitude":latString, "longitude": lonString])
            .responseJSON { response in
                switch response.result {
                case .Success:
                    if let repoJSON = response.result.value {
                        print(repoJSON)
                        let jsonArray = repoJSON as? NSMutableArray
                        for item in jsonArray! {
                            guard let store = Store(json: item as! JSON) else
                            {
                                print("Issue deserializing model")
                                return
                            }
                            listStores.append(store)
                        }
                        completion(listStores, nil)
                    }
                    break
                case .Failure(let error):
                        completion(nil, error)
                    break
                }
        }
}
编辑:

错误是"致命错误:在展开可选值时意外发现nil "

表示变量jsonArray为nil。但是只有在swift 2.3中它是nil。因为json到NSMutableArray的转换不再有效。我需要改变皈依的方式……但如何?

这是repoJSON值
(
        {
        cdState = SP;
        cdStore = 100;
        cdZipCode = "04029200                      ";
        mnStore = IBI;
        noAddress = "AV IBIRAPUERA,";
        noAddressAditional = " 3103 - LOJAS 4-5";
        noAddressNeighborhood = " 3103";
        noCity = "SU00e3o Paulo                                                                                                              ";
        noStore = "IBI-M-C-SHOPPING IBIRAPUERA";
        vlLatitude = "-23.610113";
        vlLongitude = "-46.666505";
    },
        {
        cdState = SP;
        cdStore = 105;
        cdZipCode = "05724900                      ";
        mnStore = JSU;
        noAddress = "AV GIOVANNI GRONCHI, 5819 - LUC001";
        noAddressAditional = "<null>";
        noAddressNeighborhood = "VILA ANDRADE";
        noCity = "SU00e3o Paulo                                                                                                              ";
        noStore = "JSU-C-C-SHOPPING JARDIM SUL";
        vlLatitude = "-23.630835";
        vlLongitude = "-46.7359";
    },
        {
        cdState = SP;
        cdStore = 107;
        cdZipCode = "05145000                      ";
        mnStore = TTE;
        noAddress = "AV. RAIMUNDO PEREIRA DE MAGALHU00c3ES, 1465 U0096 LOJA U00c2NCORA 1000";
        noAddressAditional = "<null>";
        noAddressNeighborhood = "JD U00cdRIS";
        noCity = "SU00e3o Paulo                                                                                                              ";
        noStore = "TTE-PP-C-SHOPPING TIETU00ca PLAZA";
        vlLatitude = "-23.506182";
        vlLongitude = "-46.718449";
    },
        {
        cdState = SP;
        cdStore = 115;
        cdZipCode = "03153001                      ";
        mnStore = CEN;
        noAddress = "AV.DR.FRANCISCO MESQUITA, 1000";
        noAddressAditional = "<null>";
        noAddressNeighborhood = "VILA PRUDENTE";
        noCity = "SU00e3o Paulo                                                                                                              ";
        noStore = "CEN-PP-C-CENTRAL PLAZA SHOPPING";
        vlLatitude = "-23.593389";
        vlLongitude = "-46.585574";
    }
)

我刚刚用

更新了我的代码
let jsonArray = repoJSON as! NSArray
不是

let jsonArray = repoJSON as? NSMutableArray

效果很好!

最新更新