Core data Can';t解决“问题”;Can';t使用两个名为“t”的不同实体合并模型;
我正在使用iOS 4.1中的一个核心数据项目(目标是3.1)。当我添加一个数据模型版本时,会出现可怕的“无法将模型与两个名为xxx的不同实体合并”错误。“清洁目标没有帮助。删除生成目录没有帮助。解决这个问题的唯一办法是删除以前安装的应用程序版本并安装fresh,这破坏了版本控制和数据迁移的全部目的 我有另一个项目成功地使用了这个过程,它们共享我为处理核心数据而建立的相同代码库。我想不出是什么让这个项目停滞不前 我的核心数据代码基于Grouchal的答案和Jeff Lamarche的答案。在故障排除中,我在网上浏览了这些以及其他类似的文章。大多数有这个问题的人似乎在“清除所有目标”方面都有好运气。但我要出击了Core data Can';t解决“问题”;Can';t使用两个名为“t”的不同实体合并模型;,core-data,ios,data-migration,Core Data,Ios,Data Migration,我正在使用iOS 4.1中的一个核心数据项目(目标是3.1)。当我添加一个数据模型版本时,会出现可怕的“无法将模型与两个名为xxx的不同实体合并”错误。“清洁目标没有帮助。删除生成目录没有帮助。解决这个问题的唯一办法是删除以前安装的应用程序版本并安装fresh,这破坏了版本控制和数据迁移的全部目的 我有另一个项目成功地使用了这个过程,它们共享我为处理核心数据而建立的相同代码库。我想不出是什么让这个项目停滞不前 我的核心数据代码基于Grouchal的答案和Jeff Lamarche的答案。在故障排
有什么建议吗?我发现我使用的第三方库正在创建自己的CoreData数据存储,并且正在使用“合并模型”方法或数据模型管理。
我联系了供应商,他们很有帮助地解决了这个问题。对于那些在尝试使用核心数据轻量级迁移后遇到这个问题的人: 即使在遵循创建数据模型新版本的说明之后,我也遇到了这个问题。我注意到在我的应用程序包中有两个“.mom”文件,一个“.mom”和一个包含“.mom”文件的“.momd”目录 基于此,我找到了解释问题和提供解决方案的方法 关键是替换使用此实现为您生成的
-(NSManagedObjectModel*)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”是数据模型的名称
希望这对某些人有用——我花了太多时间在这件事上使劲捶着头。再次感谢你,苹果!:) 这是我的解决方案
((RootViewController *) [self.tabBarController.viewControllers objectAtIndex:0]).managedObjectContext = self.managedObjectContext;
((AlbumViewController *) [self.tabBarController.viewControllers objectAtIndex:1]).managedObjectContext = self.managedObjectContext;
((CameraViewController *) [self.tabBarController.viewControllers objectAtIndex:2]).managedObjectContext = self.managedObjectContext;
((VideoViewController *) [self.tabBarController.viewControllers objectAtIndex:3]).managedObjectContext = self.managedObjectContext;
第三方图书馆是什么?我也有这个问题。