如何处理主队列上的多个 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的主要内容,如果未能解决你的问题,请参考以下文章

如何处理我的 AWS EC2 实例上的多个 Python 请求?

Aerospike如何处理通过多个连接创建同一记录?

您如何处理消息队列中乱序的消息?

如何处理消息队列消费过程中的重复消息&如何实现幂等性

消息队列面试热点一锅端

成为架构师课程系列消息队列:秒杀时如何处理每秒上万次的下单请求?