2011-02-02 12 views
0

NSFetchedResultsControllerDelegateが更新(アイテムの削除など)を処理していて、 であり、ユーザーが同時にUITableViewをスクロールすると、スクロール中に更新中のNSFetchedResultsController

UITableViewが削除されているフェッチ要求アイテムにアクセスする必要がある場合はどうなりますか? cellForRowAtIndexPathでそれをテストする必要がありますか?

また、発生することはできませんか?

+0

いくつかのテストを行ったところで、NSFetchedResultsControllerのNSManagedObjectContextをロックする必要があるように見えるので、cellForRowAtIndexPathがそれを読み込んでいるときに更新されていないことを確認してください。誰でもそれを確認できましたか? – CodeFlakes

答えて

2

これは問題ではありません。コアデータとテーブルビューがこれを処理します。

管理オブジェクトが挿入および/または削除された後に、テーブルビューを更新するようにしてください。

最も簡単な方法は、NSFetchedResultsControllerDelegateメソッドreloadDataのテーブルビューをcontrollerDidChangeContent:にすることです。

テーブルに出入りする行をアニメーション化するなどの面白いことを行うには、NSFetchedResultsControllerDelegate Protocol Referenceの「標準使用」セクションのボイラープレートコードをチェックしてください。

+0

'reloadData'を使うと動作しますが、' NSFetchedResultsController'と組み合わせて使用​​すると、すべてのセルがリロードされるため、少し生産的になります。これは、(チャットの会話のような)長さが数百のセルになる可能性のあるテーブルがある場合は、特に高価な処理です。 – alexgophermix

関連する問題