Core data Can';t解决“问题”;Can';t使用两个名为“t”的不同实体合并模型;

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的答案。在故障排

我正在使用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;

第三方图书馆是什么?我也有这个问题。