合并/复制不同的Core Data上下文

时间:2015-08-18 06:05:34

标签: ios core-data concurrency nsmanagedobjectcontext

我一直在阅读与此相关的几篇帖子,但我仍然不确定如何处理我的场景:我有一个“根”上下文(默认情况下在AppDelegate中提供)我在哪里插入我使用的对象并在整个应用程序中显示(此上下文仅用于只读操作)。我的对象的数据来自我定期调用的几个Web服务,每当我需要调用它们并更新我的对象时,我在私有队列中创建一个新的上下文来请求和解析它们:

NSManagedObjectContext *privateContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType];

    AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
    privateContext.persistentStoreCoordinator = appDelegate.persistentStoreCoordinator;

[privateContext performBlock: ^{
        // Call services and parse results
        // Insert objects in context
        // Save context
        });
    }];

完成此操作后,我需要将更新传输到“root”上下文,以便在应用程序中继续显示。我不知道该怎么做,我一直在考虑一些选择:

  1. “清理”根上下文并再次获取所有对象。
  2. 要“清理”根上下文并以某种方式复制/复制私有上下文
  3. 管理某种合并政策
  4. 最后一点听起来是最合适的,如果没有更好的那个......是吗?有人能给我一个类似场景的明确示例/教程/示例代码吗?我还没有完全理解Core Data中的并发性。

    提前致谢

0 个答案:

没有答案