私はNSFetchedResultsControllerを使ってUITableViewを処理していますが、すべて正常に動作し、特に結果デリゲートと一緒に非常に強力です。 テーブルをドリルダウンするには、同じコントローラクラスを再利用しています。これは、セル行をクリックしてパラメータを使用してインスタンス化します。コントローラはUINavigationControllerにプッシュされ、NSFetchedResultsControllerを使用して別のテーブルビューが構築されます。NSFetchedResultsControllerキャッシュを正しく使用する
この時点で、すべてのコントローラーには独自のキャッシュがあり、キャッシュ名は一意の識別子[NSString stringWithFormat "cacheName _%@"、uniqueStringForCell]で派生しています。
今質問があります。
1)多くのキャッシュを持つことは問題になりますか?
2)キャッシュを使用する時期はいつですか?
3)deleteCacheWithNameの場合、そのようなメソッドを置くのに最適な場所はどこですか?私はviewWillDisappearで試してみましたが、これで私は問題が発生し、ビューが再び表示され、キャッシュがもう存在しないとします。たとえば、UINavigationControllerを使用する場合などです。おそらくdeallocメソッドが最適な場所でしょうか?
4)キャッシュとメモリ管理の関係は何ですか?つまり、(void)didReceiveMemoryWarningが送信されたときにキャッシュを削除する必要がありますか?はいの場合は、それをもう一度再構築するのはどうですか?どのような方法が良いでしょうか、フェッチを発行し直していますか?
5)フェッチコントローラのデリゲートがUITableViewController(fetchController.delegate = self)に設定されていますが、問題はありますか?ある意味で、複数のコントローラに変更があった場合、警告が出されますか? deleteCacheWithNameはデリゲートも削除しますか?
おかげ