私は 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
か?