如何"复制"或者将NSManagedObject从专用队列中的上下文传输到主队列中的另一个上下文?

时间:2015-08-31 08:37:15

标签: ios concurrency copy nsmanagedobject nsmanagedobjectcontext

我向Web服务请求数据并在NSManagedObject并发类型的上下文中创建相应的NSPrivateQueueConcurrencyType对象,以避免阻塞主线程。在此过程结束时,我需要将我收到的新信息设置为主线程中上下文中的NSManagedObject个对象(在AppDelegate中创建的上下文)默认值)。

这是正确/适当的方法吗?我想这应该是一个常见的场景,但我没有找到任何明确的例子......我一直在考虑一些选择:

A)以某种方式深度克隆私有上下文中的对象到主上下文。

B)简单地做这样的事情:

[mainContext deleteObject:<oldObjectInMainContext>];
[mainContext insertObject:<newObjectInPrivateContext>];
[mainContext save:nil];

但是,由于上下文在不同的主题中,我认为这会导致问题......

也许适当的方式不是这些。我很欣赏处理这种情况的一些指导。

提前致谢。

编辑:我以这种方式创建私有上下文:

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

并且我没有将其设置为主要内容的子上下文。

0 个答案:

没有答案