使用 AFNetworking 时指示 'Anyobject' 不是 'NSProxy' 的子类型
Indicated 'Anyobject' is not a subtype of 'NSProxy' when using AFNetworking
我正在使用 AFNetworking 从 openweathermap API 中检索天气信息。
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)}
)
在 responseObject.description
处突出显示表明 'Anyobject' 不是 'NSProxy' 的子类型
如果删除 .description
错误将消失。
platform:xcode8.3.2swift:3
'Anyobject' is not a subtype of 'NSProxy'
您使用的所有 get
方法中的第一个是已弃用的方法(我假设您有最新的 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)
}
作为最后一个提示:如果您正在使用 Swift,最好使用 Alamofire:
https://github.com/Alamofire/Alamofire
它支持来自 Swift 的许多不错的功能和更好的错误处理。例如 Alamofire 将解析错误视为真正的错误并调用失败块,而不是像 ANetworking 那样的成功块。
还允许您轻松集成一些 JSON 解析库,例如 SwiftJSON
https://github.com/SwiftyJSON/SwiftyJSON
我正在使用 AFNetworking 从 openweathermap API 中检索天气信息。
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)}
)
在 responseObject.description
处突出显示表明 'Anyobject' 不是 'NSProxy' 的子类型
如果删除 .description
错误将消失。
platform:xcode8.3.2swift:3
'Anyobject' is not a subtype of 'NSProxy'
您使用的所有 get
方法中的第一个是已弃用的方法(我假设您有最新的 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)
}
作为最后一个提示:如果您正在使用 Swift,最好使用 Alamofire: https://github.com/Alamofire/Alamofire
它支持来自 Swift 的许多不错的功能和更好的错误处理。例如 Alamofire 将解析错误视为真正的错误并调用失败块,而不是像 ANetworking 那样的成功块。 还允许您轻松集成一些 JSON 解析库,例如 SwiftJSON https://github.com/SwiftyJSON/SwiftyJSON