我正在尝试从网址下载背景信息。 我已经阅读了GCD,Runloops和线程,并决定使用dispatc_async。 收到数据后我也想更新gui。 但是...... NSUrlConnection似乎根本没有开始。代表不接听任何电话。 我以同步的方式使用了这个NSUrlRequest和NSUrlConnection,委托得到了数据。
这是我的代码,viewcontroller中的方法;
- (void)dispatch: (NSURLRequest *) pRequest respondTo: (VivaQuery *) pQuery {
dispatch_queue_t downloadQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(downloadQueue, ^{
NSURLConnection *tConnectionResponse =[[NSURLConnection alloc] initWithRequest: pRequest delegate: pQuery];
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"Got to main thread.");
[pQuery requestEnd]; // Will update gui, i e aUIView setNeedsDisplay
});
});
}
有人有个主意吗? 提前谢谢。
亲切的问候, Jan Gifvars 斯德哥尔摩
答案 0 :(得分:0)
NSUrlConnection在它自己的后台线程上异步工作,所以你不需要在后台线程中创建它。