在将 iOS 6.0.1 上的 Core Data 托管对象上下文保存到 SQLite 存储时,我遇到了一个奇怪的“CoreData 不支持持久的跨存储关系”异常。它涉及模型中 Quotes 和 AbstractSources 之间的一对一关系。在运行时,它涉及 Quote 和 Book (其中 Book 继承自 AbstractSource。在模型编辑器中一切正常。)
我研究了类似的报告并涵盖了报告的原因:
- 我正在使用 assignObject:toPersistentStore: 将 Quote 和 Book 分配给同一个持久存储,因此两者都未分配。
- 错误描述显示所有“绝对”x-coredata id 都以相同的前缀开头(例如“x-coredata://82B3BEB3-60F2-4912-AC80-11AAD29CFF99/”,所以似乎只有一个商店在使用中.
我的问题是:
- 还有什么我需要检查的吗(也许 sg. 与 AbstractSource 相关,我没有在我的源中触摸/控制它?我正在通过调用 initWithEntity:insertIntoManagedObjectContext 来创建 Quote 和 Book 。)
- 我注意到错误描述还包括几个“相对”x-coredata id(形式为“x-coredata:///...”)。难道绝对形式总是被认为是“跨数据库”,即使“绝对”前缀(见上面的例子)是一样的?如果是这样,我如何影响“绝对”和“相对”x-coredata id 之间的任何选择?
谢谢(非常)您的关注!