objective-c – 与Grand Central Dispatch的互联网请求的良好格局?

objective-c – 与Grand Central Dispatch的互联网请求的良好格局?,第1张

概述我正在使用与GCD队列同步的ASIHTTPRequest从Internet下载数据,然后使用 JSONKit解析响应数据.你对这种模式有什么看法?先谢谢你. 这是我的代码: dispatch_async(queue, ^(void) { // Request is ASIHTTPRequest. [request startSynchronous]; 我正在使用与GCD队列同步的ASIhttpRequest从Internet下载数据,然后使用 JSONKit解析响应数据.你对这种模式有什么看法?先谢谢你.

这是我的代码:

dispatch_async(queue,^(voID) {        // Request is ASIhttpRequest.        [request startSynchronous];        // Parse JsON.        NSArray *array = [[request responseData] objectFromJsONDataWithParSEOptions:JKParSEOptionLooseUnicode];        // Callback on the main queue to update UI.        dispatch_async(dispatch_get_main_queue(),^(voID) {            callbackBlock(array);        });    });

编辑:我使用ASIhttpRequest的原因是我需要修改OAuth的请求头,并使用POST方法来上传图像.

解决方法 所以你换了这个

- (voID)dodownload {    NSURL *url = [NSURL URLWithString:@"http://foobar.com"];    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];    connection = [[NSURLConnection alloc] initWithRequest:aURLRequest delegate:self];    receivedData = [[NSMutableData data] retain];}- (voID)connection:(NSURLConnection *)connection dIDReceiveData:(NSData *)data {    [_receivedData appendData:data];}- (voID)connectionDIDFinishLoading:(NSURLConnection *)connection {    NSArray *array = [_receivedData objectFromJsONDataWithParSEOptions:JKParSEOptionLooseUnicode];    callbackBlock(array);       }

有了这个 –

- (voID)dodownload {    NSURL *url = [NSURL URLWithString:@"http://foobar.com"];    ASIhttpRequest *request = [ASIhttpRequest requestWithURL:url];    dispatch_queue_t queue = dispatch_get_global_queue(disPATCH_QUEUE_PRIORITY_DEFAulT,0);    dispatch_async(queue,^(voID) {        [request startSynchronous];        NSArray *array = [[request responseData] objectFromJsONDataWithParSEOptions:JKParSEOptionLooseUnicode];        // Callback on the main queue to update UI.        dispatch_async(dispatch_get_main_queue(),^(voID) {            callbackBlock(array);        });    });}

和来自ASIhttpRequest的10,000行代码.

它有什么?

NSURLConnection是完全异步的,使用GCD,缓存,自动zip /解压缩等.

因为这个原因,并且完全依靠你提供的(可能不完整的)信息,我会说这是一个非常糟糕的代码.

当然,上下文是一切 – 您可能真的非常有理由重新实现Apple提供的库代码已经存在的功能.

总结

以上是内存溢出为你收集整理的objective-c – 与Grand Central Dispatch的互联网请求的良好格局?全部内容,希望文章能够帮你解决objective-c – 与Grand Central Dispatch的互联网请求的良好格局?所遇到的程序开发问题。

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

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

原文地址: https://outofmemory.cn/web/1026781.html

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

发表评论

登录后才能评论

评论列表(0条)

保存