我需要向我的核心数据模型添加一些属性,但我很难让轻量级迁移正常工作!
我不断收到错误消息“无法将模型与两个名为 blah 的不同实体合并”。
这是我所做的......
将此代码添加到我的应用委托(delegate)中。
(NSPersistentStoreCoordinator*)persistentStoreCoordinator {
//等等等等
NSDictionary* 选项 = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
[NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];//等等等等
返回_persistentStoreCoordinator;
单击我的数据模型,转到“设计”>“数据模型”>“添加模型版本”。
对编号最低的那个进行了更改,主要是添加了一些属性。
删除了我以前模型生成的所有托管文件,将它们发送到垃圾箱,然后从新模型创建了新文件。
已清除所有目标。
构建并运行。
错误。
请帮忙。我已经以多种不同的方式尝试了上述方法,并尝试了很多其他的东西,每次都回到我的项目的干净副本并重新开始,但没有什么能让我克服这个错误。
谢谢!
最佳答案
好吧,又一次,我生命中的另外 6 个小时完全被浪费了,因为 Apple 是一群......好吧,我就到此为止。
无论如何,感谢这个可爱的人:http://linkroller.com/fullpage/ad/13754/?http://iphonedevelopment.blogspot.com/2009/09/core-data-migration-problems.html我能够解决问题。
您按照我已经遵循的步骤进行操作,那么您需要找到以下方法:
- (NSManagedObjectModel *)managedObjectModel {
if (managedObjectModel != nil) {
return managedObjectModel;
}
managedObjectModel = [[NSManagedObjectModel mergedModelFromBundles:nil] retain];
return managedObjectModel;
}
并将其更改为:
- (NSManagedObjectModel *)managedObjectModel {
if (managedObjectModel != nil) {
return managedObjectModel;
}
NSString *path = [[NSBundle mainBundle] pathForResource:@"Foo" ofType:@"momd"];
NSURL *momURL = [NSURL fileURLWithPath:path];
managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:momURL];
return managedObjectModel;
}
其中 foo 是您的 xcdatamodeld 文件的名称。
啊啊啊啊。
关于iphone - 核心数据轻量级迁移——不能合并模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3682043/