NSFetchedResultsControllerDelegateが更新(アイテムの削除など)を処理していて、 であり、ユーザーが同時にUITableViewをスクロールすると、スクロール中に更新中のNSFetchedResultsController
UITableViewが削除されているフェッチ要求アイテムにアクセスする必要がある場合はどうなりますか? cellForRowAtIndexPathでそれをテストする必要がありますか?
また、発生することはできませんか?
NSFetchedResultsControllerDelegateが更新(アイテムの削除など)を処理していて、 であり、ユーザーが同時にUITableViewをスクロールすると、スクロール中に更新中のNSFetchedResultsController
UITableViewが削除されているフェッチ要求アイテムにアクセスする必要がある場合はどうなりますか? cellForRowAtIndexPathでそれをテストする必要がありますか?
また、発生することはできませんか?
これは問題ではありません。コアデータとテーブルビューがこれを処理します。
管理オブジェクトが挿入および/または削除された後に、テーブルビューを更新するようにしてください。
最も簡単な方法は、NSFetchedResultsControllerDelegateメソッドreloadData
のテーブルビューをcontrollerDidChangeContent:
にすることです。
テーブルに出入りする行をアニメーション化するなどの面白いことを行うには、NSFetchedResultsControllerDelegate Protocol Referenceの「標準使用」セクションのボイラープレートコードをチェックしてください。
'reloadData'を使うと動作しますが、' NSFetchedResultsController'と組み合わせて使用すると、すべてのセルがリロードされるため、少し生産的になります。これは、(チャットの会話のような)長さが数百のセルになる可能性のあるテーブルがある場合は、特に高価な処理です。 – alexgophermix
いくつかのテストを行ったところで、NSFetchedResultsControllerのNSManagedObjectContextをロックする必要があるように見えるので、cellForRowAtIndexPathがそれを読み込んでいるときに更新されていないことを確認してください。誰でもそれを確認できましたか? – CodeFlakes