我按照这个不错的教程 http://mipostel.com/index.php/home/70-core-data-migration-standard-migration-part-2进行核心数据迁移。
出于某种奇怪的原因,我总是在这些行中的 mappingModel 中得到 NULL:
NSMappingModel *mappingModel = [NSMappingModel mappingModelFromBundles:nil
forSourceModel:sourceModel
destinationModel:destinationModel];
(链接代码中的第 191 行)
我尝试创建一个非常简单的模型派生版本,我重新创建了一个 mappingModel 1000 次,确保映射模型文件位于项目目录中 - 但此调用始终返回 NULL。
有人知道这里有什么问题吗?
ps 我只是想知道在使用映射模型之后调用设置迁移选项。
NSURL *storeUrl = [NSURL fileURLWithPath:storePath];
NSError *error;
NSDictionary *pscOptions = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
[NSNumber numberWithBool:NO], NSInferMappingModelAutomaticallyOption,
nil];
if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType
configuration:nil
URL:storeUrl
options:pscOptions
error:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
(第 123 行...)
反正
为什么找不到映射模型?
pss 忍不住 :-) 与进行简单的 SQL DB 迁移相比,这个核心数据迁移的东西过于复杂和困难——浪费了太多时间。
提前非常感谢!