CoreData自动轻量级迁移错误

时间:2011-10-04 10:02:18

标签: iphone core-data core-data-migration

我正在尝试在我的应用中使用自动轻量级迁移。我做了以下步骤:

  1. 创建新的模型版本。
  2. 修改新模型版本。
  3. 在创建persistentStoreCoordinator时,将选项NSMigratePersistentStoresAutomaticallyOption和NSInferMappingModelAutomaticallyOption设置为YES。
  4. 将当前版本设置为新版本。
  5. 并收到错误:reason =“找不到源存储的模型”

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

    编辑:我忘了输入模型细节。

    我有两个.xcdatamodel文件。第一个有两个实体,事件和地点。第二个有一个Entity,EventDate。我不再在代码中使用第二个.xcdatamodel,但我确实将该文件保留在项目中。我正在尝试将新实体Update添加到第一个模型文件中。

2 个答案:

答案 0 :(得分:0)

错误“”找不到源存储的模型“表示无法找到最初用于创建现有持久存储的.xcdatamodel文件。

假设您从这两个模型文件开始(版本号是应用程序的版本而不是数据模型):

oneEntityModelv1.xcdatamodel
twoEntityModelv1.xcdatamodel

...并且您希望迁移到此数据模型:

threeEntityModelv2.xcdatamodel

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

答案 1 :(得分:0)

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

  1. 删除未使用的xcdatamodel。
  2. 删除数据库文件。
  3. 版本剩下的型号。