无法解析响应alamofire swift 3

时间:2017-02-01 21:34:30

标签: ios swift alamofire

我正在尝试使用Alamofire快速获取Get请求。当我在使用iOS 10的模拟器或设备中运行时,它可以正常工作。当我在iOS 9.x或之前的设备上运行我的应用程序时,我得到“无法解析响应”。 JSON响应是对的。我检查了邮递员。

我的代码是:

lass func getStores(latitude:Float, longitude: Float,  completion : @escaping (Array<Store>?, NSError?) -> ()) {
let latString: String = "\(latitude)"
let lonString: String = "\(longitude)"
var listStores: Array<Store> = []
let urlFull : String = ConstantHelper.kUrlStore


Alamofire.request(urlFull, method: .get, parameters: ["latitude":latString, "longitude": lonString], encoding: JSONEncoding(options: []),  headers: [:]).validate()
        .responseJSON { response in
            switch response.result {
            case .success:
                if let repoJSON = response.result.value {
                    print(repoJSON)
                    let jsonArray = repoJSON as! NSArray
                    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 as NSError?)
                break
            }
    }
   }
 }

1 个答案:

答案 0 :(得分:1)

我在请求中没有JSON enconding的情况下使用以下代码解决了我的问题:

Alamofire.request(urlFull, method: .get, parameters: ["latitude":latString, "longitude": lonString]).validate()

我不知道为什么在Swift 2.x和带有编码的iOS 10的Swift 3.0中工作,而不是在ios 9中...但上面的代码适用于所有情况。它真的不需要加入这个请求