将核心数据添加到 iPhone 项目

Posted

技术标签:

【中文标题】将核心数据添加到 iPhone 项目【英文标题】:Adding core data to an iPhone project 【发布时间】:2011-08-23 06:05:57 【问题描述】:

我在Xcode 4 有一个项目,我已将 coredata 添加到其中,从另一个项目导入了 *.xcdatamodel,并添加了库。我更改了xcdatamodel 名称,并在委托中粘贴了必要的方法。

但我得到了错误

'无法使用 nil 模型创建 NSPersistentStoreCoordinator'

所以我需要检查我的 xcdatamodel 文件是否与我的目标链接,但我该怎么做呢?

当 .app 包中不存在 xcdatamodel(d) 时,可能会发生这种情况。 .xcdatamodeld 文件被添加到 Compile Sources 列表中(在 Xcode 4 中,单击左侧的项目,选择您的目标,转到 Build Phases 并选中 Compile Sources)。

app.xcdatamodel 在我的编译源中。我还应该在哪里调用要识别的模型?

【问题讨论】:

【参考方案1】:

似乎找不到您的对象模型文件。

您在哪里指定 .mom(或 .momd)文件的位置?它应该看起来像

NSString *path = [[NSBundle mainBundle] pathForResource:@"app" ofType:@"mom"];

如果之后立即将其输出到控制台会得到什么(像这样)

NSLog(@"%@", path);

(我预计会是nil!)

【讨论】:

【参考方案2】:

在您的应用委托中,检查方法managedObjectModel

很可能你在某处有错误的实体名称。

【讨论】:

【参考方案3】:

我发现了一个 xcodeism(错误?),我在其中创建了一个名称中带有连字符的“控制台”类型的应用程序。这在某些地方(数据模型文件)被翻译成下划线,而在其他地方则保留为连字符。关于这种交互的某些东西导致了上述问题。

绝对不是一般案例问题,但可能会发现一些毫无戒心的极端案例......

【讨论】:

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

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

核心数据对现有项目 iphone 的影响

iPhone Core Data 对象添加到 NSMutableArray

核心数据 - iCloud 行为

将 iPad 故事板添加到现有的 iphone 项目

如何使用 iphone 中的核心数据将图像存储到 sqlite? [复制]