“无法加载NSManagedObjectModel。 nil是非法的URL参数“

我想从AppDelegate获取托pipe的对象上下文,但是在将两行代码放入方法之后,应用程序崩溃了,即使我什么也没做,并且在debugging区域中有一条消息: “CoreData:无法加载NSManagedObjectModel。一个非法的URL参数…“

在我的方法中添加的代码:

AppDelegate *delegate = [UIApplication sharedApplication].delegate; NSManagedObjectContext *managedObjectContext = delegate.managedObjectContext; 

AppDelegate中的-managedObjectModel方法:

 - (NSManagedObjectModel *)managedObjectModel { // The managed object model for the application. It is a fatal error for the application not to be able to find and load its model. if (_managedObjectModel != nil) { return _managedObjectModel; } NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"FoodPin" withExtension:@"momd"]; _managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL]; return _managedObjectModel; } 

和-managedObjectContext方法:

 - (NSManagedObjectContext *)managedObjectContext { // Returns the managed object context for the application (which is already bound to the persistent store coordinator for the application.) if (_managedObjectContext != nil) { return _managedObjectContext; } NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator]; if (!coordinator) { return nil; } _managedObjectContext = [[NSManagedObjectContext alloc]initWithConcurrencyType:NSPrivateQueueConcurrencyType]; [_managedObjectContext setPersistentStoreCoordinator:coordinator]; return _managedObjectContext; } 

“FoodPin”是我的项目名称,所以这里有什么问题?我是iPhone编程的新手(特别是Core Data)。

谁能帮我?

谢谢…

问题是这一行:

 NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"FoodPin" withExtension:@"momd"]; 

modelURL nil意思,系统找不到资源FoodPin.momd

确保在名为FoodPin的项目中有一个Core Data模型。 它将在Project Navigator中显示为FoodPin.xcdatamodeld

我有同样的问题,但对我来说modelURL被正确设置。 问题是我的* .xcdatamodeld文件不在复制包资源中。 我不知道为什么它会消失,但要重新添加它来解决问题。

这里是如何解决它:你项目>构build阶段>复制包资源>“+”button,并select你xcdatamodeld文件

NSURL * modelURL = [[NSBundle mainBundle] URLForResource:@“XYZ”withExtension:@“momd”];

确保您的数据模型名称与URLForResource:XYZ匹配。

我有同样的错误。

 NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"name" withExtension:@"momd"]; 

名字中的“n”必须是“N”:像对象中的其他所有东西一样,这个母亲是区分大小写的。