将 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
文件(与兄弟姐妹Frameworks
和Products
),而不是在以项目命名的文件夹中(与兄弟姐妹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 应用程序的步骤