我在我的申请中使用Grand Central Dispatch(GCD)来做一些繁重的工作.该应用程序使用Core-Data进行数据存储.这是我的场景(以及相关问题):
dispatch_queue_t main_queue = dispatch_get_main_queue();
dispatch_queue_t request_queue = dispatch_queue_create("com.app.request", NULL);
dispatch_async(request_queue, ^{
MyNSManagedObject *mObject = [self.fetchedResultsController objectAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
// …
// <heavy lifting>
// …
// …
// <update mObject>
// …
[self saveManagedObjectContext];
});
Run Code Online (Sandbox Code Playgroud)
因此[self saveManagedObjectContext],fetchResultsController委托方法会自动调用.因此,UI更新逻辑启动.
现在的问题是,我需要用main_queue的-saveManagedObjectContext?我应该在我执行的所有操作NSManagedObject的main_queue?某些更新操作NSManagedObject可能需要2-3秒.请指教.