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

ary*_*axt 19 iphone core-data

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

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

NSString *modelPath = [[NSBundle mainBundle] pathForResource:@"myProj" ofType:@"momd"];
NSURL *modelURL = [NSURL fileURLWithPath:modelPath];
Run Code Online (Sandbox Code Playgroud)

小智 29

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

  1. 在现有的myProj.xcdatamodel模型中添加一个版本.在Xcode中选择myProj.xcdatamodel文件,然后从Xcode的菜单中选择Design - > Data Model - > Add Model Version.
  2. 仅使用非版本化的模型文件.将提供的代码更改为:

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

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

有关详细信息,请参阅:模型版本


Nim*_*rod 5

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

另请查看CoreDataBooks示例代码.