我正在测试 CoreData+CloudKit,即我正在使用NSPersistentCloudKitContainer
处理与 iCloud 的所有通信的一个。
当我启动应用程序时,CoreData 会自动与 iCloud 同步,即(其中)插入或更新的记录被导入到 CoreData。没有记录被删除。
我的测试在模拟器上运行。
我的第一次尝试是只使用viewContext
. 要将远程更改合并到此上下文中,我设置
viewContext.automaticallyMergesChangesFromParent = true
此外,我正在使用Apple 建议的历史跟踪,但历史处理也使用viewContext
,而不是新的背景上下文。
这工作得很好,除了使用viewContext
.
因此,我的第二次尝试是通过背景上下文处理历史记录(如 Apple 所建议的那样)。
现在重复记录以下错误(显然是永远):
CoreData:删除传播预取失败并出现异常:提取请求的实体 0x6000017a2050 'NSCKImportOperation' 似乎来自与此上下文不同的 NSManagedObjectModel
即使在我删除了仪表板中的所有 iCloud 记录并从模拟器中删除了应用程序之后,也会记录此错误。
我只使用了一个NSManagedObjectModel
与关系,但所有关系都有删除规则“无操作”。
为了检查这个错误的原因,我设置了一个运行时断点,应用程序停止并显示以下堆栈跟踪:
我应该提到错误消失,如果我设置
viewContext.automaticallyMergesChangesFromParent = false
但我当然需要自动合并才能正确操作。
我的问题是:
这真的是一个错误吗?(日志说“它似乎……”)。
这可能是什么原因,如何避免?
PS:CoreData预取相关的帖子还有很多,但是没有找到CoreData+CloudKit相关的