添加新模型版本后,Coredata无法找到模型

时间:2014-04-09 16:13:15

标签: ios objective-c core-data restkit

一直在敲我的头。

我为我的数据库添加了一个新的模型版本以进行迁移并添加了一个新属性但是当我运行应用程序而不删除它时我得到了

找不到源存储的模型。我试图调试并注意到无法创建持久存储。

我已经设置了所有迁移内容,但我无法弄清楚为什么它无法创建持久性存储。

错误似乎指出我的模型不存在,我试图调试,我可以看到它被创建,模型在文档文件夹下。任何帮助将不胜感激。我也在使用restkit。

干杯。

2 个答案:

答案 0 :(得分:1)

您需要删除以前不兼容的永久文件。以下代码对我有用:

if (![_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]) {
            [[NSFileManager defaultManager] removeItemAtURL:storeURL error:nil];
            [_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error];
}

答案 1 :(得分:1)

如果要在不删除数据库的情况下迁移数据库,并且只对模型进行了少量更改(如添加属性),请使用以下命令:

[_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType
                                          configuration:nil
                                                    URL:storeURL
                                                options:@{NSMigratePersistentStoresAutomaticallyOption: @(YES), NSInferMappingModelAutomaticallyOption: @(YES)}
                                                  error:&error];

关键是选项NSMigratePersistentStoresAutomaticallyOptionNSInferMappingModelAutomaticallyOption