だからここに私が直面している問題があります。私はNSFetchedResultsControllerに裏打ちされたUITableViewを持っています。アプリケーションの起動時に、データ ソースを更新します。これには、複数のネットワーク呼び出しを行い、着信データを処理することが含まれます。データ ソースの更新中にユーザーがいずれかの行を削除した場合、非同期ネットワーク コールバックで削除されたデータにアクセスすると、アプリがクラッシュします。このシナリオを適切に処理するにはどうすればよいですか?
質問する
145 次
2 に答える
0
NSFetchedResultsControllerのメモリ追跡を使用している場合は、レコードが永続ストアから削除される前に、インターフェイスからレコードを削除できます。NSFetchedResultsControllerのデリゲートのNSFetchedResultsChangeTypeを必ず読み取り、バックグラウンドスレッド(オブジェクトが削除されている場所)からのNSManagedObjectContextを、レコードを読み取るNSManagedObjectContextとマージしてください。
オブジェクトが削除されたかどうかを判断する良い方法は、existingObjectWithID:error:を使用して、現在のオブジェクトIDを持つ既存のオブジェクトを確認することです。これは、NSFetchedResultsControllerなしでNSManagedObjectsを使用する場合に非常に便利です。
于 2012-10-22T18:55:27.633 に答える
0
isDeleted
オブジェクトにアクセスする前に、オブジェクトを呼び出してみてください。
于 2012-10-22T18:42:29.410 に答える