我的模型有两个版本Model001.xcdatamodel
and Model002.xcdatamodel
。这两个是在Model.xcdatamodeld
捆。
我也有一个Model001to002.xcmappingmodel
这不属于Model.xcdatamodeld
。我检查过: xcmappingmodel 和 xcdatamodeld 都被复制到 .app 包中。
我的托管对象上下文是这样初始化的:
NSURL *documentModel = [bundle URLForResource:@"Model"
withExtension:@"momd"]; managedObjectModel = [[NSManagedObjectModel alloc]
initWithContentsOfURL:documentModel]; return managedObjectModel;
我还在我的重写中设置了这些属性initWithFileURL:
in my UIManagedObject
子类。
NSMutableDictionary *options = [NSMutableDictionary dictionaryWithDictionary:self.persistentStoreOptions];
[options setObject:@YES forKey:NSMigratePersistentStoresAutomaticallyOption];
[options setObject:@YES forKey:NSInferMappingModelAutomaticallyOption];
self.persistentStoreOptions = [options copy];
但是当我尝试打开文档时,出现以下错误:Can't find mapping model for migration
- 更新 -
即使我进行手动迁移
[NSMappingModel mappingModelFromBundles:@[[NSBundle mainBundle]]
forSourceModel:sourceObjectModel
destinationModel:self.managedObjectModel];
这返回零。尽管我仔细检查了 Model001to002.cdm 是否在应用程序包中。它必须在应用程序包中,对吗?
映射模型的一个“问题”是,在创建映射后,您不能对模型进行任何更改。如果这样做,您也会收到此错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)