0

我正在尝试从 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 斯德哥尔摩

4

1 回答 1

0

NSUrlConnection 在它自己的后台线程上异步完成它的工作,所以你不需要在后台线程中创建它。

于 2013-08-31T20:34:18.953 回答