0

我使用 ABC.xcdatamodel 开发了核心数据存储。分发应用程序版本 1。

需要对属性名称进行一些简单的更改,所以我创建了一个新版本的 ABC 2.vcdatamodel。分发了应用程序版本 2。效果很好。迁移是完美的。

然后,我需要进行一些更简单的更改(添加一个属性),因此我创建了另一个基于 ABC 2 的新版本;ABC 3.xcdatamodel。从版本 2 更新时自动迁移失败。

但是,如果我尝试从版本 1 构建(使用 ABC.xcdatamodel)升级,一切都会像魅力一样。

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

4

1 回答 1

0

一个想法 - 您可能无意中修改了您的第 2 版数据模型,使其不再匹配在修改之前创建的第 2 版存储。现在,当加载具有“真实”版本 2 存储的实例时,找不到匹配的数据模型,因此无法从 2 转换为 3。在处理版本之前,您是否将版本 2 模型签入到 git/svn 3? 是否显示为已修改?

请注意,“修改”并不一定意味着添加任何属性 - 只是任何会改变 Core Data 用于定义版本的哈希值的小东西。

于 2013-02-28T01:02:02.507 回答