如何在主队列上处理多个moc

时间:2015-12-17 08:38:26

标签: swift core-data nsmanagedobjectcontext

我希望主队列上每个实体有一个moc,这样用户可以同时修改多个实体。

假设有两个实体:“Bag”和“Category”,一个包可以有很多类别。因此,当用户在提取类别时修改/创建项目时,用户也可以修改/创建类别,当然还可以保存或取消更改。因此,当用户只保存“类别”时,为避免保存或取消“Bag”中的更改,我在同一个PersistentStore上使用2 moc作为“Bag”,使用第二个作为“Category”,但两个init都使用NSMainQueueConcurrencyType。

并且“奇怪地”更改未正确保存并且rollBack()变得一团糟......

我找不到关于在主队列中使用多个moc的解释......

任何帮助?

非常感谢!!!!!

1 个答案:

答案 0 :(得分:1)

尽可能尝试仅使用单个托管对象上下文。它使一切变得更加简单。

如果您需要将它们用作便笺簿(这样您可以撤消),您可能希望将子moc添加到第一个中。这两个都将使用主队列/线程。请注意,您可以直接在托管对象上下文之间传递对象。

our book使用多个上下文章节中的更多详细信息。