MagicalRecord:如何执行后台保存

MagicalRecord:如何执行后台保存

问题描述:

我正在构建一个新闻应用程序,它基本上使用AFNetworkOperation从远处的服务器获取数据(所有操作都放在NSOperationQueue中以正确管理同步过程和进度)。MagicalRecord:如何执行后台保存

每个AFNetworkOperation的每个完成块创建/删除/更新核心数据实体。

在同步过程中的整个结束,为了让所有的变化执着,我执行完全保存我的保存操作时的代码

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0); 

    dispatch_async(queue, ^{ 
     NSLog(@"saveInBackground : starting..."); 

     [[NSManagedObjectContext defaultContext] saveToPersistentStoreWithCompletion:^(BOOL success, NSError *error) { 
       NSLog(@"saveInBackground : finished!"); 
     }]; 
    }); 

不幸的是它总是块主线程以下行。

我可能不会正确使用MagicalRecord,因此任何建议都会受到欢迎。

在深入挖掘MagicalRecord之后,似乎我的代码运行良好,并且根本不会阻塞主线程。

我的问题不在MagicalRecord上,但是我应该在完成网络操作的块上使用它。

我会开始一个新的讨论,提供它的全部细节。