我创建了一个 Core Data 应用程序,并从中获取了 .xcdatamodel 文件并将其添加到另一个 iOS 应用程序中。这个新应用程序是一个 SingleView 应用程序,我现在正在尝试连接到这个 .xcdatamodel 文件来运行 Core Data 函数。我所做的是创建了一个 Singleton 类,通过它我调用一个实例方法:
NSManagedObjectContext *context = [[SingletonDB sharedInstance] managedObjectContext];
managedObjectContext 方法如下所示:
- (NSManagedObjectContext *) managedObjectContext{
static NSManagedObjectContext *context = nil;
if(context){
return context;
}
NSPersistentStoreCoordinator *coordinator = nil;
NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"MyTestDatabase" withExtension:@"momd"];
NSManagedObjectModel *objectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
NSLog(@"%@", [objectModel entities]);
...
}
在“managedObjectContext”方法中,由于某种原因,modelURL 的值为 nil,从而导致 RuntimeException:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Cannot create an NSPersistentStoreCoordinator with a nil model'
我是否错过了导致此错误的步骤?当我选择 MyTestDB.xcdatamodel 文件时,我看到了我在之前的应用程序中创建的完整核心数据模式,现在由于某种原因我无法读取数据。我还尝试将扩展名从“momd”更改为“mom”,但这只会将 RuntimeException 更改为:
'NSInvalidArgumentException', reason: 'Cannot create an SQL store with a nil URL.'
问题可能是什么?