2013-02-27 156 views
0

我使用ABC.xcdatamodel开发了Core Data存储。 分发应用程序版本1.具有多个版本的核心数据迁移(轻量级)

需要对属性名称进行一些简单的更改,因此我创建了一个新版本的ABC 2.vcdatamodel。 分发应用程序版本2. 工作正常。移民是完美的。然后,我需要做一些更简单的更改(添加一个属性),所以我创建了另一个基于ABC 2的新版本; ABC 3.xcdatamodel。 从版本2更新时自动迁移失败。

然而,如果我尝试从版本1构建版升级(使用ABC.xcdatamodel),所有东西都像魅力一样工作。

我错过了一些明显的东西吗?想法?

回答

0

一个想法 - 您可能无意中修改了您的第2版数据模型,使其不再匹配修改前创建的第2版商店。现在,当加载“真正”版本2商店的实例时,无法找到匹配的数据模型,因此无法将其从2翻译为3.您是否在使用版本之前检查了版本2模型为git/svn 3?它显示为已修改吗?

请注意,“修改”并不一定意味着添加任何属性 - 只是会更改核心数据用于定义版本的哈希值的任何小事情。

+0

就是你!我发现我错误地将关系从“建议”改为“建议”。通过将哈希值输出到控制台来找到它。添加了名称映射,并按预期工作。感谢名单。 – mputnamtennessee 2013-02-28 10:35:48

+0

我自己一直在与Core Data迁移问题摔跤,而且这个问题已经让我苦恼了几次。对于你的一些技巧,看看这篇文章关于打开核心数据迁移调试。我只是用它,这是一个很好的帮助,以确定哪些散列不匹配。我添加了一个链接到相关的Apple Technote到选定的答案:http://stackoverflow.com/questions/12835950/ – 2013-02-28 22:32:33

相关问题