Core Data にメモリ管理を無効にするように指示する方法はありますか? 非常に長い間コンテキストに保存されないビューに NSManagedObjects があります。管理対象オブジェクトはテーブル ビューにあります。ユーザーは最初にそのビューを見てから別のビューに移動し、テーブル ビューに戻るまでに多くの時間を費やします。次の例外が発生します: 「NSObjectInaccessibleException - CoreData はエラーを処理できませんでした」</p>
質問する
2400 次
2 に答える
4
NSFetchRequest を使用してコア データ エンティティを取得する際の障害を無効にするには、要求を実行する前に [request setReturnsObjectsAsFaults:NO] という行を追加します。
于 2012-05-17T16:42:26.390 に答える
1
Core Dataフォールトフルフィルメントエラーは通常、フォールトされたオブジェクトを保持していて、別のスレッドが子オブジェクトの1つを削除し、永続ストアにコミットしたことを意味します。したがって、元のスレッドが障害を実行するために戻ると、そこにはもう何もありません。
実行できることの1つは、他のビューにNSManagedObjectContextDidSaveとNSManagedObjectContextWillSaveをリッスンさせて、変更が発生したときにそれに対応する(つまり、データを新しくリロードする)ことです。これにより、キャッシュに不良オブジェクトが発生することはありません。
于 2012-05-17T16:27:30.413 に答える