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 ファイルを選択すると、以前のアプリケーションで作成した完全な Core Data スキーマが表示されますが、何らかの理由でデータを読み取ることができません。また、拡張子を「momd」から「mom」に変更しようとしましたが、それは RuntimeException を次のように変更するだけです。
'NSInvalidArgumentException', reason: 'Cannot create an SQL store with a nil URL.'
問題は何ですか?