gpt4 book ai didi

ios - AFNetworking 2 + SwiftyJSON

转载 作者:可可西里 更新时间:2023-11-01 01:06:39 25 4
gpt4 key购买 nike

SwiftyJSON https://github.com/SwiftyJSON/SwiftyJSON看起来很有前途。但是,这些说明仅讨论了与 Alamofire(Swift 的 AFNetworking)的集成。但是,由于当前项目的性质,已经在使用AFNetworking2,无法切换到Alamofire。但是,我在将 AFNetworkingSwiftyJSON 集成时遇到了问题。

我有以下代码块,如何将可向下转换为 NSDictionaryresponseObject 转换为 SwiftyJSON< 中定义的 JSON 对象?下面的代码不起作用。

        let task:NSURLSessionDataTask = AFHTTPSessionManager.GET(
url,
parameters: params,
success: { (task: NSURLSessionDataTask!, responseObject: AnyObject!) in

dispatch_async(dispatch_get_main_queue(), {

// How do I convert responseObject, which can be downcasted to NSDictionary to a JSON object?
let data = JSON(data: responseObject)
completion(task: task, response: data as JSON!, error: nil)
})
},
failure: { (task: NSURLSessionDataTask!, error: NSError!) in
dispatch_async(dispatch_get_main_queue(), {
completion(task: task, response: nil, error: error)
})
}
)

最佳答案

首先,你不需要派发到主队列。 AFNetworking 已经在主线程上调用了这些 block 。

您正在使用的初始化程序需要数据,而不是 JSON 对象。

你目前正在使用这个初始化器,它需要一个 NSData:

let json = JSON(data: dataFromNetworking)

相反,你应该使用这个初始化器:

let json = JSON(jsonObject)

如果您在此处传递 responseObject,SwiftyJSON 将正常工作。


另一个注意事项:此代码不属于完成 block 。在 AFNetworking 的设计中,您应该创建一个响应序列化程序来处理服务器的响应。我建议查看 AFJSONResponseSerializer 的源代码并将其移植以使用 SwiftyJSON。

关于ios - AFNetworking 2 + SwiftyJSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26567936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com