我有两个版本的模型Model001.xcdatamodel
和Model002.xcdatamodel
. 这两个在Model.xcdatamodeld
捆绑包中。我也有一个Model001to002.xcmappingmodel
不属于Model.xcdatamodeld
. 我检查了: xcmapingmodel 和 xcdatamodeld 都被复制到 .app 包中。
我的托管对象上下文是这样初始化的:
NSURL *documentModel = [bundle URLForResource:@"Model" withExtension:@"momd"]; managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:documentModel]; return managedObjectModel;
我还在initWithFileURL:
我的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 是否在应用程序包中。它必须在应用程序包中,对吗?