CoreData自动轻量级迁移错误
问题描述:
我想在我的应用程序中使用自动轻量级迁移。我做了以下步骤:CoreData自动轻量级迁移错误
- 创建新的模型版本。
- 编辑新的型号版本。
- 创建persistentStoreCoordinator时,将选项NSMigratePersistentStoresAutomaticallyOption和NSInferMappingModelAutomaticallyOption设置为YES。
- 将当前版本设置为新版本。
,并得到了一个错误:原因=“无法找到源店模式”
我试过产品 - >清洁无济于事。想法?
编辑:我忘了放在模型的细节。
我有两个.xcdatamodel文件。第一个有两个实体,活动和场地。第二个有一个实体,EventDate。我不再使用代码中的第二个.xcdatamodel,但我没有将该文件留在项目中。我正试图添加一个新的实体更新到第一个模型文件。
答
错误“”无法找到源店模式”指的是.xcdatamodel文件最初用于创建现有持久性存储无法找到。
你应该开始与这两个模型文件(版本数字是应用程序的版本不是数据模型):
oneEntityModelv1.xcdatamodel
twoEntityModelv1.xcdatamodel
...你想要迁移到这个数据模型:
threeEntityModelv2.xcdatamodel
V2版本的应用程序必须包含所有三个文件才能进行迁移。
+0
有什么特别的我必须做,以确保这一点?添加新模型时,我没有删除/删除任何xcdatamodel文件。 – jcm
答
问题是我们使用mergedModelFromBundles来实例化我们的模型。显然,自动轻量级迁移并不能很好地发挥作用。修复方法是:
- 删除未使用的xcdatamodel。
- 删除数据库文件。
- 版本的其余模型。
您是否添加了新模型以用作新模型?您应该为现有模型添加新版本。 – rckoenes
@rckoenes是的,通过编辑器 - >在Xcode中添加模型版本。 – jcm