2017-02-01 16 views
0

AlamofireですぐにGetリクエストを作成しようとしています。シミュレータまたはiOS 10搭載のデバイスで動作させるとうまく動作します。 iOS 9.x以前のデバイスでアプリを実行すると、「応答を解析できません」というメッセージが表示されます。 JSONの応答が正しいです。私は郵便配達員を調べた。応答を解析できません。alamofire swift 3

私のコードがあります:

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 
      } 
    } 
    } 
} 
+0

私の経験によれば、Postmanで正しいJSONが表示されている可能性がありますが、JSONSerializationは破損していると言います。 JSONレスポンスを代わりに表示してください。可能であればリンクかもしれない。 –

答えて

1

私がリクエストでJSONのencondingせずに次のコードで私の問題を解決しました:

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

スウィフト2.xの中やで働く理由を私は知りませんスウィフト3.0、iOS 10でエンコードしていて、9でないのですが...上のコードはすべての状況で動作します。このリクエストを実行するのに実際には必要ありません。

関連する問題