无法在新开发计算机上使用nil模型创建NSPersistentStoreCoordinator

时间:2013-03-15 10:33:39

标签: ios xcode nspersistentstore

我刚刚使用Xcode设置了一台新的开发机器,当我打开,构建并运行一个现有的核心数据项目(它仍能在我的旧机器上完美运行)时,我收到一条“无法创建一个NSPersistentStoreCoordinator与一个零模型“错误。

我已经阅读了与此错误相关的stackoverflow上的无数问题,感谢他们觉得我对iOS如何处理数据库对象模型有了更好的理解,据我所知,没有什么明显的错误

我正在使用我的托管对象模型的标准初始化方法,即......

NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"project" withExtension:@"momd"];
_managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];

...这是在我的旧机器上返回一个不错的NSManagedObjectModel,但在我的新机器上没有。

正在编译的包确实包含一个project.momd文件夹,该文件夹又包含一个project.mom文件,该文件与旧机器上的编译输出完全相同,但是一个运行,一个不运行!很沮丧!

我唯一能想到的是Xcode中的配置选项我没有在新机器上正确设置,但是非常感谢任何帮助或建议!

*更新*

我的新机器上的软件包包含Project.momd中的project.mom。在我的旧机器上,Project.mom在Project.momd中,我猜测模型名称区分大小写,所以我只需要解释为什么xcode以小写形式编译妈妈...

手动将project.mom重命名为捆绑包中的Project.mom确实解决了问题,尽管是暂时重新编译项目。

1 个答案:

答案 0 :(得分:2)

打开xcdatamodeld“文件夹”(使用Finder中的“显示包内容”)以查看xcdatamodel文件是否具有相同的大小写。从理论上讲,xcdatamodeld会被编译为momdxcdatamodelmom

请注意,iOS文件系统区分大小写,而OSX不是(至少默认情况下),因此这可能是您在不同计算机上获得不同结果的原因。