CoreData自动轻量级迁移错误

问题描述:

我想在我的应用程序中使用自动轻量级迁移。我做了以下步骤:CoreData自动轻量级迁移错误

  1. 创建新的模型版本。
  2. 编辑新的型号版本。
  3. 创建persistentStoreCoordinator时,将选项NSMigratePersistentStoresAutomaticallyOption和NSInferMappingModelAutomaticallyOption设置为YES。
  4. 将当前版本设置为新版本。

,并得到了一个错误:原因=“无法找到源店模式”

我试过产品 - >清洁无济于事。想法?

编辑:我忘了放在模型的细节。

我有两个.xcdatamodel文件。第一个有两个实体,活动和场地。第二个有一个实体,EventDate。我不再使用代码中的第二个.xcdatamodel,但我没有将该文件留在项目中。我正试图添加一个新的实体更新到第一个模型文件。

+0

您是否添加了新模型以用作新模型?您应该为现有模型添加新版本。 – rckoenes

+0

@rckoenes是的,通过编辑器 - >在Xcode中添加模型版本。 – jcm

错误“”无法找到源店模式”指的是.xcdatamodel文件最初用于创建现有持久性存储无法找到。

你应该开始与这两个模型文件(版本数字是应用程序的版本不是数据模型):

oneEntityModelv1.xcdatamodel 
twoEntityModelv1.xcdatamodel 

...你想要迁移到这个数据模型:

threeEntityModelv2.xcdatamodel 

V2版本的应用程序必须包含所有三个文件才能进行迁移。

+0

有什么特别的我必须做,以确保这一点?添加新模型时,我没有删除/删除任何xcdatamodel文件。 – jcm

问题是我们使用mergedModelFromBundles来实例化我们的模型。显然,自动轻量级迁移并不能很好地发挥作用。修复方法是:

  1. 删除未使用的xcdatamodel。
  2. 删除数据库文件。
  3. 版本的其余模型。