将 CoreData 添加到现有项目

Posted

技术标签:

【中文标题】将 CoreData 添加到现有项目【英文标题】:Adding CoreData to existing Project 【发布时间】:2011-03-09 19:22:02 【问题描述】:

我正在尝试中,并且 有奇怪的错误...

我得到错误:

由于未捕获的异常而终止应用程序 'NSInvalidArgumentException',原因: '无法创建 NSPersistentStoreCoordinator 与 零模型'

在 RootView 中有一个警告:

- (NSFetchedResultsController *)fetchedResultsController;

排队:

_fetchedResultsController.delegate = self;

它说:

警告:类 'RootViewController' 不执行 'NSFetchedResultsControllerDelegate' 协议

有什么想法吗?

【问题讨论】:

【参考方案1】:

啊!

抱歉,我只是错过了我更改了 .xcdatamodel 的名称

我只需要更改 managedObjectModel 和 persistentStoreCoordinator 中的名称

希望它对某人有所帮助。

【讨论】:

每个人都从错误中吸取教训,通常是我们自己的。如果没有,我们总是希望我们可以作为对他人的警告。 谢谢!我不知道我是怎么错过的!【参考方案2】:

我遇到了同样的异常。

我的问题是我在项目的根目录中添加了.xcdatamodeld 文件(与兄弟姐妹FrameworksProducts),而不是在以项目命名的文件夹中(与兄弟姐妹Supporting Files,@ 987654325@等)

我追踪到这一行:NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"Foo" withExtension:@"momd"];

在这个方法中:- (NSManagedObjectModel *)managedObjectModel

【讨论】:

我遇到了同样的问题,要更改它的位置,尽管您还必须将实用程序编辑器中的 Path 属性更改为“相对于组”。 谢谢。我将 @"Foo" 重命名为我的 .xcdatamodeld 文件的名称,并将 .xcdatamodeld 文件移至我的根项目目录。您可能还需要在终端中执行此操作。

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

将 CoreData 添加到现有 iOS 项目 - 无法获取 NSManagedObjectModel

使用 Objective-C 将 CoreData 添加到现有项目中

将 Core Data 添加到现有 Xcode 项目时出现未声明的标识符错误

将 Ensembles 添加到现有 Coredata / iCloud 应用程序的步骤

Swift & Core Data - 将实体添加到现有实体

将 CoreData 与对象一起使用?