将CoreData添加到现有项目中

5

我正在尝试将CoreData添加到现有项目中,但出现了奇怪的错误...

我收到以下错误:

终止应用程序,原因是未捕获的异常'NSInvalidArgumentException',原因为:无法使用nil模型创建NSPersistentStoreCoordinator

在RootView中,存在以下警告:

- (NSFetchedResultsController *)fetchedResultsController;

在行内:

_fetchedResultsController.delegate = self;

它说:

警告:类 'RootViewController' 没有实现 'NSFetchedResultsControllerDelegate' 协议

有什么想法吗?

2个回答

14

啊!

非常抱歉提出这个问题,我错把.xcdatamodel的名字改变了。

我只需要在managedObjectModel和persistentStoreCoordinator中更改名称即可。

希望它能帮到其他人。


1
每个人都会从错误中学习,通常是自己的错误。如果不是,我们总可以希望成为其他人的警示。 - TechZen
谢谢!我不知道我怎么会错过那个! - sridvijay

4
我遇到了相同的异常。
我的问题是我把`.xcdatamodeld`文件添加到项目的根目录(与兄弟节点`Frameworks`和`Products`同级),而不是添加到以项目命名的文件夹中(与兄弟节点`Supporting Files`、`AppDelegate.h`等同级)。
我定位到了这行代码:NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"Foo" withExtension:@"momd"]; 在这个方法中:- (NSManagedObjectModel *)managedObjectModel

我曾经遇到过同样的问题,如果要更改它的位置,您还必须在“工具”编辑器中将路径属性更改为“相对于组”。 - robmcm
谢谢。我将@"Foo"重命名为我的.xcdatamodeld文件的名称,并将.xcdatamodeld文件移动到我的根项目目录中。您可能还需要在终端中执行此操作。 - Andrew Kozlik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接