NSManagedObjectModel为零

时间:2015-03-20 14:24:22

标签: ios core-data

enter code here我正在研究导入工具,遵循objc.io在https://github.com/objcio/issue-4-importing-and-fetching处所做的模式。

在程序的早期阶段,我从url创建一个NSManagedObjectModel实例,它返回nil。当我运行程序时,我后来得到的错误是#34;无法使用nil模型创建NSPersistentStoreCoordinator"。

附件是我创建模型后断点处的屏幕截图。我在这里环顾四周,并确认了:

  • HistologyDataImporter.xcdatamodeld属于HistologyDataImporter(目标成员资格)
  • NSString我使用构建路径匹配模型文件的名称(" HistologyDataImporter")
  • 我也试过过去"妈妈"作为URLByAppendingPathComponent的扩展名,但运行时模型仍为零。

为什么[[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL]仍然返回nil?

enter image description here

1 个答案:

答案 0 :(得分:0)

因为您使用了错误的位置。你拥有的是:

NSString *path = @"HistologyDataImporter";
NSURL *modelURL = [NSURL fileURLWithPath:path isDirectory:NO];
moelURL = [modelURL URLByAppendingPathComponent:@"momd"];

如果您使用这样的相对路径调用fileURLWithPath:,则假定它相对于当前工作目录。您的代码未设置工作目录,但modelURL的值表明它位于Xcode的派生数据文件夹中的某个位置。从Xcode运行应用程序时,这并不奇怪,但模型文件不在该目录中。

您需要确定HistologyDataImporter.momd的位置,并确保modelURL实际指向该位置。如果您将模型文件放在桌面上,则可以使用desktopURL中的main(),并将模型文件名添加到该文件中。