我使用核心数据在Objective-C中编写了第一个iOS应用程序版本。
我现在正在Swift中从头开始重新编写应用程序,因为Objective-C版本非常错误。
目标是在从Objective-C更新到Swift版本后,将数据库内容保留在应用程序中。用户不应丢失数据。
在Swift项目中,我使用了自动生成的.xcdatamodel,并且我完全基于Obj-c .xcdatamodel文件重新创建了所有实体和关系。 Bunddle标识符对于两个版本都是相同的。在模拟器中,当我运行项目时,一个正在替换另一个。但每次都会删除数据库。
我找到了几个解释轻量级或大量迁移的主题,但总是与同一项目中的数据模型更改有关。
是否可以将旧的.xcdatamodel文件复制到新项目中? 我试过但没有任何成功。也许问题是文件的命名方式不同,而且项目是用不同的语言编写的。
答案 0 :(得分:0)
将模型文件复制到新项目就像复制文件一样简单。
如果您打开了两个Xcode项目,则可以将文件从一个项目拖到另一个项目中。 Xcode会询问您想要做什么 - 确保选中“如果需要,复制项目”。点击“完成”即可完成。
或者在Finder中进行。复制旧文件,将副本移动到新项目的文件夹中,并在必要时重命名。然后切换到Xcode并告诉它添加新的模型文件(“文件”菜单 - >“添加文件...”)。