在另一个版本中更改NSManagedObject父实体

时间:2015-05-25 14:55:29

标签: ios core-data nsmanagedobject core-data-migration nsmanagedobjectmodel

有没有什么好方法可以在另一个版本中更改NSManagedObject的父实体? 让我们说模型版本1.1我得到了:

  • anObject - 没有父实体

在版本1.2中我想让它继承自

  • object - 版本1.1中已存在且包含属性“objectID”的父类

当我更改它的父实体时,应用程序崩溃:

  

由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'无法创建托管对象上下文:持久性存储协调器没有任何持久性存储。这可能意味着您忘记添加持久性存储,或者尝试这样做失败并出现错误。

this answer中,建议在新版本中创建具有不同名称的新实体,并删除旧实体。
我的问题是,对于这类问题是否有“更清洁”的解决方案? 如何将映射模型添加到项目/当前模型?

1 个答案:

答案 0 :(得分:1)

O.k解决方案很简单,
您在模型中进行必要的更改(更改" anObject"父实体)
然后,您只需要选择" New File" - > "核心数据" - > "映射模型"

Add a new mapping model

确保在添加新映射模型之前在模型中进行更改!
然后选择源数据模型(在我的案例中为1.1版)和目标数据模型(1.2),并创建新的映射模型。
对我来说,这很简单,甚至不需要在新的映射模型中进行任何更改。如果有人对使用映射模型的利弊有任何意见,我想在这里。