如何处理主队列上的多个 moc
Posted
技术标签:
【中文标题】如何处理主队列上的多个 moc【英文标题】:How to handle multiple moc on main queue 【发布时间】:2015-12-17 08:38:25 【问题描述】:我想在主队列中为每个实体设置一个 moc,以便用户可以同时修改多个实体。
假设有 2 个实体:“Bag”和“Category”,一个包可以有多个类别。因此,当用户在选择类别时修改/创建 Bag 中的项目时,用户也可以修改/创建类别,当然还可以保存或取消更改。因此,当用户只保存“Category”时,为了避免在“Bag”中保存或取消更改,我在同一个 PersistentStore 上使用 2 个 moc,一个用于“Bag”,另一个用于“Category”,但都使用 NSMainQueueConcurrencyType 初始化。
而且“奇怪”的更改没有正确保存,并且 rollBack() 变得一团糟......
我没有找到关于在主队列上使用多个 moc 的解释......
有什么帮助吗?
非常感谢!!!!!!
【问题讨论】:
【参考方案1】:尽量只使用一个托管对象上下文。它使一切变得简单得多。
如果您需要将它们用作便笺簿(以便您可以撤消),您可能需要在第一个 moc 中添加一个子 moc。这两个都将使用主队列/线程。请注意,您可以不直接在托管对象上下文之间传递对象。
更多详细信息请参阅our book 中的使用多个上下文一章。
【讨论】:
以上是关于如何处理主队列上的多个 moc的主要内容,如果未能解决你的问题,请参考以下文章