我想弄清楚这段代码是否正在更新主线程上的UI。此代码位于专门用于下载JSON供稿的类中。获取数据后,我解析它以返回一个数组,我将用它来更新UI,然后让委托人知道数据已准备就绪。我的委托人,一个视图控制器,将使用这个数组来更新用户界面。我是否需要在dispatch_get_main_queue
块中执行-parser:didFinishParsingWithResults:
?或者是没有必要,因为我更新视图控制器类中的用户界面,而不是这个类?谢谢!GCD和代理线程?
__block NSArray *results;
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSData *responseData = [NSData dataWithContentsOfURL:url];
results = [self parseData:responseData];
[self.delegate parser:self didFinishParsingWithResults:results];
});
Got it!我只是不确定是否告诉代表意味着它会自动返回主线程。不知道我为什么做出这样的假设。谢谢。 – 2012-08-05 05:45:04