更新应用时重用核心数据模型 - 从头开始​​

时间:2016-12-11 22:38:58

标签: ios core-data migrate

我的问题很简单,但我还是找到了一些特别回答它的东西。

我有一个obj-c应用程序,我经常更新。我想创建一个具有相同bundle id的新swift应用程序来替换旧版本作为更新。我喜欢我的旧应用程序中的8个核心数据模型版本,我很乐意迁移到新的swift-from-scratch-app,因此我的用户不会丢失他们的数据。它甚至可能吗?

谢谢你

1 个答案:

答案 0 :(得分:3)

如果您使用完全相同的捆绑ID(这是关键),那么从iOS的角度来看,它被认为是完全相同的应用程序。考虑您的用户在其设备上安装了应用版本1.x的用户,并使用新的Swift项目释放2.x.您的用户或iOS都可以说这是一个用Swift编写的全新应用程序。

问题在于,除非您使用完全相同的模型名称,否则CoreData无法使用现有数据进行初始化,您将被迫为此编写自定义迁移。

我的建议是复制旧项目中的xcdatamodel文件,并在复制到新项目后更改它生成的代码的语言。

enter image description here

然后在Swift中重新生成你的实体并继续工作,就像从未发生过一样。