iOS 9解析JSON的最佳解决方案

iOS 9解析JSON的最佳解决方案,第1张

概述当我需要解析feed JSON时,我总是使用这个解决方案. https://stackoverflow.com/a/20077594/2829111 但是现在不推荐使用sendAsynchronousRequest,我仍然坚持使用这段代码 __block NSDictionary *json; [[session dataTaskWithURL:request completionHand 当我需要解析Feed JSON时,我总是使用这个解决方案.

https://stackoverflow.com/a/20077594/2829111

但是现在不推荐使用sendAsynchronousRequest,我仍然坚持使用这段代码

__block NSDictionary *Json;    [[session dataTaskWithURL:request completionHandler:^(NSData *data,NSURLResponse *response,NSError *error) {        // handle response        Json = [NSJsONSerialization JsONObjectWithData:data options:0 error:nil];        NSLog(@"Async JsON: %@",Json);        [collectionVIEw reloadData];}] resume];

有了这个,reloadData参数需要很长时间才能执行.我已经尝试用以下方法强制回到主队列:

__block NSDictionary *Json;    [[session dataTaskWithURL:request completionHandler:^(NSData *data,NSError *error) {            // handle response            Json = [NSJsONSerialization JsONObjectWithData:data options:0 error:nil];            NSLog(@"Async JsON: %@",Json);            dispatch_sync(dispatch_queue_create("com.foo.samplequeue",NulL),^{[collectionVIEw reloadData});}] resume];
解决方法 问题是完成处理程序不在主队列上运行.但是所有UI更新必须在主队列上进行.所以将它发送到主队列:

[[session dataTaskWithURL:request completionHandler:^(NSData *data,NSError *error) {    // handle response    NSError *parseError;    NSDictionary *Json = [NSJsONSerialization JsONObjectWithData:data options:0 error:&parseError];    // do something with `Json`    dispatch_async(dispatch_get_main_queue()),^{[collectionVIEw reloadData]});}] resume];
总结

以上是内存溢出为你收集整理的iOS 9解析JSON的最佳解决方案全部内容,希望文章能够帮你解决iOS 9解析JSON的最佳解决方案所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1003675.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存