相关疑难解决方法(0)

使用CoreData的Grand Central Dispatch(GCD)

我在我的申请中使用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?我应该在我执行的所有操作NSManagedObjectmain_queue?某些更新操作NSManagedObject可能需要2-3秒.请指教.

iphone core-data grand-central-dispatch objective-c-blocks

22
推荐指数
2
解决办法
2万
查看次数