轻量级迁移不起作用

时间:2014-08-20 06:27:02

标签: xcode core-data data-migration

我正在处理我的应用程序,从1.0版本开始,我在核心数据中向实体添加了新属性。所以我添加了新的模型版本,我将storeURL设置为Model 6.sqlite(在Model 5.sqlite之前),而不是编辑persistentStoreCoordinator。但是,当我运行应用程序时崩溃和日志显示错误。当我删除应用程序,然后再次安装它工作正常。哪个问题我的app工作比hasPerformedFirstLaunch是错误的初始核心数据,但我不想丢失每个新模型版本的数据。

  

由于未捕获的异常'NSRangeException'而终止应用程序,原因:   ' * - [__ NSArrayI objectAtIndex:]:索引0超出范围为空   阵'

NSDictionary *migrateOptions = [NSDictionary dictionaryWithObjectsAndKeys:
                                [NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
                                [NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];

1 个答案:

答案 0 :(得分:1)

我可能在这里遗漏了一些东西,但需要有一个新的Model 6.sqlite文件。您不需要仅仅因为添加新的模型版本而拥有新的持久性存储文件。这就是迁移的作用,使现有的持久性存储与新的模型版本兼容。