1
我想使所有读取/写入数据库操作都能够到后台队列并在完成时更新当前UI视图。用户在执行dispatch_get_main_queue()之前留下当前视图
如果用户在处理数据库时停留在视图中,则没有问题。但是,如果用户在数据库操作完成之前离开该视图,则会崩溃。所述伪代码如下:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{
/* save data to database, needs some time */
dispatch_async(dispatch_get_main_queue(), ^{
// back to main queue, update UI if possible
// here may cause crash
[self.indicator stopAnimating];
[self.imageView ...];
});
});
什么是崩溃? –
整个屏幕冻结,但指示器微调器保持旋转。 – benck
这不是一个崩溃。你提到了崩溃。 –