2017-04-24 10 views
1

AFNetworkingを使用して気象情報フォームopenweathermap APIを取得しています。 responseObject.descriptionでハイライト表示AFNetworkingを使用している場合、 'Anyオブジェクト'は 'NSProxy'のサブタイプではありません

let manager = AFHTTPSessionManager() 
    manager.requestSerializer = AFJSONRequestSerializer() 
    let url = "http://api.openweathermap.org/data/2.5/weather" 
    let params = ["lat": latitude,"lon": longitude,"cnt": 0] 

    manager.get(url, parameters: params, 
       success: {(operation: URLSessionDataTask,responseObject: AnyObject!) in print("JSON" + responseObject.description!) }, 
       failure: {(operation: URLSessionDataTask?,error: Error) in print(error.localizedDescription)} 
    ) 

は、エラーが消えます.descriptionを削除する場合は「ANYOBJECTは」「NSProxy」 のサブタイプではないことが示されました。 プラットフォーム:Xcodeの8.3.2 SWIFT:3

'Anyobject' is not a subtype of 'NSProxy'

答えて

0

まずget方法を使用しているのは、廃止予定の1(私はあなたが最新AFNetworkingバージョンを持っていると仮定)です。最後のヒントとして

let manager = AFHTTPSessionManager() 
manager.requestSerializer = AFJSONRequestSerializer() 
let url = "http://api.openweathermap.org/data/2.5/weather" 
let params = ["lat": 5.0,"lon": 5.0,"cnt": 0] 
manager.get(url, parameters: params, progress: nil, success: { (operation, responseObject) in 
    if let responseObject = responseObject { 
     print(responseObject) 
    } else { 
     print("There is no response object") //assume parsing error for JSON 
    } 
}) { (operation, error) in 
    print(error.localizedDescription) 
} 

:新しいものをこのように使用してくださいあなたはスウィフトを使用している場合は、より良いAlamofireを使用します。 https://github.com/Alamofire/Alamofire

それはスウィフトからの素敵な機能の多くと非常に良くエラー処理をサポートしています。たとえば、Alamofireは解析エラーを実際のエラーとして扱い、ANetworkingのような成功ブロックではなく失敗ブロックを呼び出します。 SwiftJSONのようなJSON解析ライブラリを簡単に統合することもできます https://github.com/SwiftyJSON/SwiftyJSON

関連する問題