我正在一个线程中执行在线获取数据的操作,我想在这个块被执行后立即执行一些操作。
这是我的代码:
- (IBAction)refresh:(UIBarButtonItem *)sender {
NSLog(@"checking");
[self editToolbar];
dispatch_queue_t fetchQ = dispatch_queue_create("Refreshing", NULL);
dispatch_async(fetchQ, ^{
[self setupFetchedResultsController];
[self fetchImonggoItemsDataIntoDocument: self.itemDatabase];
});
dispatch_release(fetchQ);
NSLog(@"done checking");
//do something here
}
问题在于dispatch_async立即返回,“done checking”立即打印,甚至在块执行完成之前。我该如何解决这个问题?
performBlock:
是否立即返回(异步运行)?只要在后台线程上,总是可以使用performBlockAndWait:
。 - gregheo