核心数据轻量级迁移错误

时间:2014-05-11 06:37:17

标签: objective-c core-data core-data-migration

我一直在努力让核心数据轻量级迁移工作。陷入一个非常棘手的问题。 我已经设置了自动轻量级迁移,就像文档和其他SO posts一样。然后我创建一个新版本,选择它作为当前版本,向某个实体添加一个新字段,然后运行。 得到错误:

  

迁移失败,错误错误Domain = NSCocoaErrorDomain Code = 134140“操作无法完成。(Cocoa错误134140)。”UserInfo = 0xce08c10 {reason =无法找到或自动推断迁移的映射模型,

还有一个错误:

NSUnderlyingError = "Error Domain=NSCocoaErrorDomain Code=134190 \"The operation couldn\U2019t be completed. (Cocoa error 134190.)\" UserInfo=0xcdf2d00 {reason=Each property must have a unique renaming identifier}";

我已经谷歌搜索“每个属性必须有一个唯一的重命名标识符”一段时间,并没有找到任何结果。

根据此错误消息的含义,属性应具有唯一的重命名标识符。我回到我的模型设置,发现我确实有一些重命名标识符完全相同。

我的问题是我根本没有真正更改模型名称。我只是添加一个新字段。我认为重命名标识符仅在尝试重命名时才有用。或者也许它无论如何都是必需的。如果是这种情况,那么为什么XCode不会给我们任何警告或错误呢? XCode看到它不应该是非常明显的吗?

欢迎提出任何建议。

2 个答案:

答案 0 :(得分:3)

回答过去的帖子,但您不是唯一遇到此帖子的人无法找到或自动推断迁移的映射模型问题。

所以,我遇到了同样的问题,在一个包含12个模型版本的大型项目中,只有轻量级迁移。刚刚重命名了2个属性,直到今天一切正常。

我找到的唯一解决方法是在我最近的两个模型版本之间添加映射模型(新文件=>核心数据=>映射模型)到我的项目。 我希望我不必为每个新的模型更新添加一个。似乎是Core Data中的迁移错误。

希望这会帮助其他人解决这个错误。

但发生在iOS 8 / iOS 9设备上

答案 1 :(得分:-3)

我不相信迁移可以在模拟器上运行。我总是要从模拟器中删除应用程序,并在更改托管对象模型后重新开始。

在已使用旧版本设置的设备上测试安装,以确保您的迁移成功。

相关问题