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上,但是我应该在完成网络操作的块上使用它。
我会开始一个新的讨论,提供它的全部细节。