enter code here
我正在研究导入工具,遵循objc.io在https://github.com/objcio/issue-4-importing-and-fetching处所做的模式。
在程序的早期阶段,我从url创建一个NSManagedObjectModel实例,它返回nil。当我运行程序时,我后来得到的错误是#34;无法使用nil模型创建NSPersistentStoreCoordinator"。
附件是我创建模型后断点处的屏幕截图。我在这里环顾四周,并确认了:
NSString
我使用构建路径匹配模型文件的名称(" HistologyDataImporter")URLByAppendingPathComponent
的扩展名,但运行时模型仍为零。为什么[[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL]
仍然返回nil?
答案 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()
,并将模型文件名添加到该文件中。