当我从第二个视图返回到我的mainView时,我正在处理第二个视图的viewDidDisappear方法中的内容。问题是,由于应用程序必须完成的工作,我的mainView卡住了。
以下是我的工作:
-(void)viewDidDisappear:(BOOL)animated
{
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
dispatch_async(queue, ^{
dbq = [[dbqueries alloc] init];
[[NSNotificationCenter defaultCenter] postNotificationName:@"abc" object:nil];
//the notification should start a progressView, but because the whole view gets stuck, I can't see it working, because it stops as soon as the work is done
dispatch_sync(dispatch_get_main_queue(), ^{
//work
});
});
我做错了什么? 提前谢谢!
答案 0 :(得分:3)
您需要在dispatch_async
的{{1}}内完成工作。您正在主线程中执行工作(假设queue
注释就在哪里),此外您还在阻止工作线程等待此工作。
尝试稍微重新安排您的GCD通话:
// Work