Core data 核心数据及;Xcode 4.3中的UIManagedDocument:Can';t合并模型

Core data 核心数据及;Xcode 4.3中的UIManagedDocument:Can';t合并模型,core-data,xcode4.3,uimanageddocument,Core Data,Xcode4.3,Uimanageddocument,我要感谢所有为这个网站做出贡献的人。我是个编程高手,你们帮了我很多。话虽如此,让我们继续我的最新问题吧 我正在创建一个应用程序,它使用UIManagedDocument为我存储核心数据模型。我以前使用以下代码创建UIManagedDocument,但现在使用Xcode 4.3.2(使用Mac App Store更新的版本)时,我遇到了一个问题 代码如下: NSURL *url = [[[NSFileManager defaultManager] URLsForDirectory:NSDo

我要感谢所有为这个网站做出贡献的人。我是个编程高手,你们帮了我很多。话虽如此,让我们继续我的最新问题吧

我正在创建一个应用程序,它使用
UIManagedDocument
为我存储核心数据模型。我以前使用以下代码创建
UIManagedDocument
,但现在使用Xcode 4.3.2(使用Mac App Store更新的版本)时,我遇到了一个问题

代码如下:

    NSURL *url = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
    url = [url URLByAppendingPathComponent:@"MyFile"];

    NSLog(@"\n\n This line does print. \n\n");
    UIManagedDocument *document = [[UIManagedDocument alloc] initWithFileURL:url];
    NSLog(@"\n\n This line does not print \n\n");
我在控制台中收到如下错误:

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“无法将模型与名为“Foo”的两个不同实体合并”

事情是这样的,我不想让版本或类似的东西起作用。我只是用两种类型的实体创建了一个数据模型,并试图在我的应用程序中打开一个UIManagedDocument:超级简单,对吗

我已经卸载了Xcode并重新安装了它,但运气不好。我还删除了我的核心数据模型,并从头开始重做,但运气不佳

我完全迷路了,已经花了大约两个晚上试图解决这个问题

救救我!请谢谢你的阅读。如果你需要更多信息,请告诉我。我会用我的灵魂来回答你…

所以我想出来了

我很难相信我必须将UIManagedDocument子类化。最终我不必这么做。我的文件与项目的链接方式有一些问题

我按照这里的步骤走,现在一切都好了


您是否有可能将多个.xcdatamodel添加到您的包中?或者可能是具有相同版本号的模型的多个版本?我的项目文件夹中只有一个.xcdatamodel。我创建了新的核心数据模型,添加了两个实体,然后运行项目。如何创建同一数据模型的多个版本?如果您不知道,可能没有这样做(Xcode中有一个“添加模型版本”选项)。我知道UIDocument类的initWithFileURL方法中发生了错误。除此之外,我完全被卡住了。顺便说一下,我注意到.xcdatamodel文件正在转换为.xcdatamodeld文件(注意附加的'd')。这能告诉我们什么吗?根据我的经验,这很正常。您可以尝试将UIManagedDocument子类化并重写
-managedObjectModel
。我是这样做的:
[NSManagedObjectModel mergedModelFromBundles:[NSArray arrayWithObject:[NSBundle bundleForClass:[self class]]]]]
但是如果这仍然复制了实体,可能会有一些不同的代码可以工作。老实说,我不知道是什么导致了你所看到的问题;我只是建议我应该尝试一下。