首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用NSProxy时,指示的'Anyobject‘不是’AFNetworking‘的子类型

在使用NSProxy时,指示的'Anyobject‘不是’AFNetworking‘的子类型
EN

Stack Overflow用户
提问于 2017-04-24 06:36:26
回答 1查看 150关注 0票数 1

我使用AFNetworking从openweathermap中检索天气信息。

代码语言:javascript
复制
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,错误就会消失。平台:xcode 8.3.2迅捷:3

‘'Anyobject’不是'NSProxy‘的一个子类型

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-24 07:29:19

在您使用的所有get方法中,首先使用的是不推荐的方法(我假设您有最新的AFNetworking版本)。请这样使用新的:

代码语言:javascript
复制
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将解析错误视为真正的错误,并调用failure块,而不是像ANetworking这样的成功块。还允许您轻松地集成一些JSON解析库,如SwiftJSON https://github.com/SwiftyJSON/SwiftyJSON

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43581308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档