iPhone - 将核心数据添加到现有项目?

时间:2010-10-11 18:12:25

标签: iphone core-data

我正在尝试将核心数据功能添加到现有项目中。 我添加了一个名为“myProj.xcdatamodel”的数据模型文件

获取managedObjectModel时,我的代码崩溃如下 什么是“momd”文件?我在哪里可以得到它或我如何创建它? 当我读取路径时,它返回null并崩溃应用程序。

NSString *modelPath = [[NSBundle mainBundle] pathForResource:@"myProj" ofType:@"momd"];
NSURL *modelURL = [NSURL fileURLWithPath:modelPath];

2 个答案:

答案 0 :(得分:29)

momd文件是妈妈文件的版本等效文件。此时您有两种选择:

  1. 将版本添加到现有的myProj.xcdatamodel模型中。在Xcode中选择myProj.xcdatamodel文件并选择Design - >数据模型 - >从Xcode的菜单中添加模型版本。
  2. 仅使用非版本化的模型文件。将提供的代码更改为:

    NSString * modelPath = [[NSBundle mainBundle] pathForResource:@“myProj”ofType:@“mom”]; NSURL * modelURL = [NSURL fileURLWithPath:modelPath];

  3. 如果您从Xcode中的默认模板创建基于导航的应用程序(使用核心数据进行存储),您会发现模型文件已经过版本化。

    有关详细信息,请参阅:Model Versions

答案 1 :(得分:5)

“mom”或“momd”文件是.xcdatamodel文件的编译版本。也许您没有将.xcdatamodel文件添加到目标中,因此它没有被编译?获取信息并确保它为您的目标构建。

另请查看CoreDataBooks示例代码。