核心数据多个ManagedObjectContext

时间:2016-10-10 09:02:00

标签: ios core-data swift2 nsmanagedobjectcontext managedobjectcontext

多个ManagedObjectContext(MOC)如何在核心数据(Swift 2,iOS 9)中工作。我经历了很多链接和在线资料和StackOverflow上的答案,但无法找到确切的答案。

我想知道,假设我创建了指向PersistentStoreCoordinator(PSC)的主MOC和另一个将父上下文设置为上述主MOC的私有队列MOC。

问题1:那么这是如何工作的?层次结构是这样构建的:专用队列MOC - >主队列MOC - > PSC。

问题2:如果我打电话保存私人队列MOC',它会保存到主MOC,然后自动主MOC会保存到PSC吗?或者在保存私有MOC之后,我们必须在主MOC上调用显式保存以将其保存到PSC?

我刚刚开始研究核心数据,而在线链接并不是那么清晰。所以,任何简化的解释都将非常受欢迎。

谢谢!

1 个答案:

答案 0 :(得分:1)

对于问题1,您可以创建层次结构。如果您创建一个没有父级的上下文,然后创建另一个父上下文是第一个上下文的上下文,那么它就像您描述的那样。

对于问题2,我将转向documentation on NSManagedObjectContext

  

在上下文中保存更改时,更改仅提交“一个存储”。如果保存子上下文,则更改将推送到其父级。在保存根上下文之前,更改不会保存到持久性存储中。

自动保存从不,因此父级上下文不会保存更改,直到您告知保存为止。