重命名的核心数据导致无法加载NSManagedObjectModel

时间:2017-01-23 11:14:13

标签: ios core-data

我正在创建一个新版本的应用程序。我不希望保留任何现有的核心数据数据或模型,所以我认为最简单的方法是侧面执行现有数据并创建一个新的,不同的名称存储。我将文件MyApp.xcdatamodeld的名称更改为MyAppV2.xcdatamodeld和行

let container = NSPersistentContainer(name: "MyApp")

let container = NSPersistentContainer(name: "MyAppV2")

现在,当我跑步时,我收到以下错误:Failed to load NSManagedObjectModel with URL 'file:///var/containers/Bundle/Application/.../MyApp.app/MyAppV2.momd/'

我正在使用iOS 10。

我是以错误的方式解决这个问题还是还有其他需要改变的事情?

非常感谢。

1 个答案:

答案 0 :(得分:-1)

最简单的方法是不重命名任何东西。只需将模型更改为您想要的模型,任何现有数据库都将不兼容,因此在用户第一次运行新版本的应用程序时应该感到震惊。

如果您想要重命名,那么最好的办法是完全从您的应用中删除旧商店,然后添加一个新名称的新商店。 MyApp.xcdatamodeld实际上不是一个文件,而是一个包含几个嵌套文件夹和文件的包,所以它不会轻易重命名。