1

iPad アプリ全体で MagicalRecord を使用しています。断続的に例外をスローするコード行があります。

+entityForName: nil は、エンティティ名を検索する有効な NSManagedObjectContext パラメータではありません...

私が理解しているのは、 NSManagedObjectContext がnilであるためです。このコード行とそれに似た他のコード行によってエラーがトリガーされるまで、アプリはかなりの時間実行されます (異なるエンティティを使用):

    [apptDataArray addObjectsFromArray:[AppointmentInfo MR_findAllWithPredicate:predicate]];

NSManagedObjectContext は AppDelegate.h で次のように定義されています。

NSManagedObjectContext *defaultContext;

さらにAppDelegate.mで

    defaultContext = [NSManagedObjectContext MR_defaultContext]; 

アプリ全体で使用されます。私が尋ねた別の SO の質問で、Saul Mora は次のように述べています。

保存するたびに新しいコンテキストを作成し、コンテキストを再利用しないことで、スレッドをクロスせず、1% の確率でアプリをクラッシュさせないことが保証されます。

私の保存が何らかの形でdefaultContextオブジェクトを破壊している可能性はありますか? もしそうなら、MR メソッド呼び出しごとに新しいdefaultContext を作成するのが賢明でしょうか?

4

1 に答える 1