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

Posted

技术标签:

【中文标题】iPhone - 将核心数据添加到现有项目?【英文标题】:iPhone - Add Core Data To existing Project? 【发布时间】:2010-10-11 18:12:24 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

momd 文件是 mom 文件的版本化等效文件。此时您有两个选择:

    为现有的 myProj.xcdatamodel 模型添加一个版本。在 Xcode 中选择 myProj.xcdatamodel 文件,然后从 Xcode 的菜单中选择 Design -> Data Model -> Add Model Version。

    仅使用非版本化模型文件。将您提供的代码更改为:

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

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

更多信息请见:Model Versions

【讨论】:

谢谢,明天我可以访问代码时试试这个?怎么会有人知道这个? :( 在文档中找不到这个。 查看核心数据版本控制和数据迁移编程指南 - developer.apple.com/library/ios/#documentation/cocoa/Conceptual/…【参考方案2】:

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

还可以查看 CoreDataBooks 示例代码。

【讨论】:

以上是关于iPhone - 将核心数据添加到现有项目?的主要内容,如果未能解决你的问题,请参考以下文章

将核心数据添加到 iPhone 项目

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

无法将单元测试添加到现有 iOS 项目

xcode 4.5 启动图像奇怪的名称问题(现有项目)

项目转换 - iPad 到 iPhone

如何将EF核心搭建到现有数据库?