我有一个NSManagedObject ElementA,其中有几个属性应该通过父子关系存在于ElementB中。将ElementA设置为父实体到ElementB时,NSPersistentStoreCoordinator失败。 ManagedObjectModel正确构建,实体/类彼此独立工作。应用程序失败和编译之间的唯一区别就是这种父子关系。任何一个实体的属性都不重叠。NSManagedObject实体继承导致NSInternalInconsistencyException
我还没有足够的代表,所以图片是在以下链接:ElementA Model,ElementB Model。
至于故障排除去,我已经试过所有的以下内容:
- 带和不带实现自定义类。
- 设置ElementA抽象(但是我需要它不能是抽象的)
- 删除,然后一次添加的因素之一(包括排空两个实体的所有属性)
- 重置的Xcode(清洁)时,模拟器(全部重置),然后重新启动我的机器。
我已经阅读了Apple的Docs(核心数据编程指南:管理对象模型),并且所有内容似乎都与他们的实体继承指南一致。
这是一个失败行:
__persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
我似乎什么在这里失踪?这很明显,因为这看起来不应该这么难。任何和所有的帮助表示赞赏!
编辑为@罗格的评论
应用程序只要核心数据模型首次启动时访问失败。上面的新图像显示我正在尝试使用模型编辑器设置ElementB的父实体。以下是我收到错误消息:
uncaught exception 'NSInternalInconsistencyException', reason: 'Bad model. For entity 'ElementA' subentity 'ElementB (0x785d790)' is not registered in NSManagedModelModel. Model has a reference to ElementB (0x785e320)'
您需要提供更多详细信息。发布您的托管对象模型视图的屏幕截图。此外,它何时崩溃 - 在启动时,实例化其中一个管理对象时。你如何将ElementA设置为ElementB的父类/超类?你得到的错误是什么? – Rog 2012-02-03 06:12:00