1

多个 ManagedObjectContext (MOC) 如何在核心数据中工作(Swift 2、iOS 9)。我在 StackOverflow 上浏览了很多链接和材料以及答案,但找不到确切的答案。

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

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

问题 2:如果我在“私人队列 MOC”上调用 save,它会保存到主 MOC,然后主 MOC 会自动保存到 PSC 吗?还是在 Private MOC 上保存后,我们必须在 Main MOC 上调用显式保存才能将其保存到 PSC ?

我刚开始研究核心数据,在线链接不是很清楚。因此,任何简化的解释都将不胜感激。

谢谢!

4

1 回答 1

1

对于问题 1,层次结构是您创建它的方式。如果您创建一个没有父上下文的上下文,然后创建另一个其父上下文是第一个上下文的上下文,它将如您所描述的那样。

对于问题 2,我将转到NSManagedObjectContext 上的文档

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

保存永远不会自动,因此父上下文不会保存更改,直到您告诉它保存。

于 2016-10-10T16:18:26.710 回答