我正在尝试从 url 在后台下载信息。我已经阅读了 GCD、Runloops 和线程,并决定 dispatc_async 是我要走的路。收到数据后,我还想更新 gui。但是...... NSUrlConnection 似乎根本没有开始。代表没有接到任何电话。我以同步方式使用了这个 NSUrlRequest 和 NSUrlConnection,并且委托获得了预期的数据。
这是我的代码,一个视图控制器中的方法;
- (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 斯德哥尔摩