【发布时间】:2018-09-28 16:48:36
【问题描述】:
我正在从事的项目的一部分涉及管理产品的存储。
Storage 对象包含 StorageShelf 对象,它们定义了货架的数量。反过来,StorageShelf 包含一些其他对象,例如 StorageLocation 对象,这些对象确定可以放在货架上的产品数量。所有这些对象都存在于 CoreData 中。我还将 Storages 和 StorageShelfs 存储在 CloudKit 数据库中以进行同步。
如果我在两台 iPad 上运行我的应用程序,并在其中一台设备上添加带有一些搁板的存储,它会在另一台设备上接收通知并开始处理它收到的更新。
我的应用程序中有一个 CloudOperationQueue,其 maxConcurrentOperationCount 为 1,以确保同时只进行一次更新(这是因为我的应用程序的所有对象,以及超出这个问题是高度相互依赖的)。
不一致的是,这会导致以下SIGABRT 错误消息:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Objects should not be both modified and additional'
具体来说,当我对收到的其中一个架子对象进行修改后保存上下文时,会发生此错误。在哪个货架上没有一致性。
问题
这个错误是什么意思,如何调试它?
【问题讨论】:
标签: ios swift multithreading core-data cloudkit