4

Core Data にメモリ管理を無効にするように指示する方法はありますか? 非常に長い間コンテキストに保存されないビューに NSManagedObjects があります。管理対象オブジェクトはテーブル ビューにあります。ユーザーは最初にそのビューを見てから別のビューに移動し、テーブル ビューに戻るまでに多くの時間を費やします。次の例外が発生します: 「NSObjectInaccessibleException - CoreData はエラーを処理できませんでした」</p>

4

2 に答える 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 に答える