6

私は Core Data を使用しており、ライブ アプリで次のエラーを含むクラッシュ レポートを取得している状況があります。

Cannot create an NSPersistentStoreCoordinator with a nil model 

これはシミュレーター (およびデバイス) で時々発生することがわかりましたが、どちらでも一貫して発生するわけではありません。

いくつかのデバッグを行った後、根本的な原因 (コードの観点から) は、managedObjectModel 作成メソッドが nil を返すことがあることがわかりました。AppDelegate からの私の実装は次のとおりです。

- (NSManagedObjectModel *)managedObjectModel {
    if (__managedObjectModel != nil) {
        return __managedObjectModel;
    }
    NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"AppName" withExtension:@"momd"];
    __managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
    return __managedObjectModel;
}

幸運なことに、クラッシュが発生したときにデバッガーを実行していることが時々あり、上記のメソッドが呼び出され、initWithContentsOfURL:メソッドが実行されることを確認しましたが、 nil.

[[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL]たまに戻ってくる理由を誰か思いつきますnilか?

4

0 に答える 0