0

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.'

問題は何ですか?

4

1 に答える 1