エンジニア開発記エンジニア開発記HomeArchives2011-12-05FetchResultsControllerのdelegateとcacheの意味FetchedResultsControllerは非常によく使います。深く知らなかったので(毎回cacheをnilにしてたので)、ちょっと調べて見ました。3つのパターンdelegateとcacheを設定するかしないかで3パターンあり、これによってFetchResultsControllerの挙動が変わります。最初にpreFetchしたときにobjectのリストを取得し、今後は呼ばれるたびにそのリストを元にデータを返してくれるようです。performFetchで一覧に表示されるものが確定するそれぞれのオブジェクトのデータは、必要に応じてfetchされた時点でのものデータが変化したとしても、表示は変化しないmemoryWorningなどで保持しているメモリ内のcacheが消えた時のみfetchしなおされるので、データが最新に更新されるというちょっとだけ不思議な状態が起きるみたいです。前回CoreData&FetchedResultsでデータが変わっても変化しないリストを作る方法を書きましたが、もしかしたらこんな事しないでもdelegateをnilにするだけで同じ結果がえられたかもしれません。