performBlock: および performBlockAndWait: メソッドを使用して、読み取り専用データベースのコンテキストでフェッチ要求を実行しています (アプリにパッケージ化されているため、書き込まれることはありません)。
performBlockAndWait: 内のすべての NSManagedObject アクセサーもラップすることになっていますか? -それはかなり面倒です。現在、CoreData のプライベート キューが performBlock を使用して実行を行っているときに、CoreData が 1 対多の関係で障害を起こしているときにクラッシュが発生しています。
何かのようなもの:
NSManagedObject* alreadyFetchedObject = ...;
NSArray* alreadyFetchedObject.otherObjects; // Crashes here on main thread (no performBlock wrapped around accessing otherObjects)
.
[context performBlockAndWait:^{
// Currently executing here on CoreData's own queue
result = [context executeFetchRequest:fetchRequest error:nil];
}];