3

このドキュメントは、私が完全に理解するには少し単純すぎます

したがって、コントローラーには、デリゲートがあるかどうか、およびキャッシュファイル名が設定されているかどうかによって決定される3つの動作モードがあります。

追跡なし:デリゲートはnilに設定されます。コントローラは、フェッチが実行されたときのデータへのアクセスを提供するだけです。

メモリのみの追跡:デリゲートはnil以外であり、ファイルキャッシュ名はnilに設定されています。コントローラは、結果セット内のオブジェクトを監視し、関連する変更に応じてセクションと注文情報を更新します。

完全な永続的追跡:デリゲートとファイルキャッシュ名はnilではありません。コントローラは、結果セット内のオブジェクトを監視し、関連する変更に応じてセクションと注文情報を更新します。コントローラは、計算結果の永続的なキャッシュを維持します。

それはドキュメントが言ったことです、それで「永続的なキャッシュ」は何をしますか?「その計算の結果」とは何ですか?キャッシュはパフォーマンスの問題だけですか?

4

2 に答える 2

0

NSFetchedResultsControllerのドキュメントから:

可能な場合、コントローラーはキャッシュを使用して、セクションの設定やコンテンツの順序付けで実行される作業を繰り返す必要をなくします。

NSFetchResultsControllerは、データをセクションに編成し、UITableViewで表示するためにデータを並べ替える役割を果たします。UITableViewでは、データの計算が必要です。各計算の後、コントローラーは結果をキャッシュするため、同じデータを再表示する場合は、計算を再度実行しなくても、キャッシュされた結果を返すことができます。

そうです、キャッシュは冗長な計算を排除することでパフォーマンスを向上させることを目的としています。

于 2012-04-19T04:05:27.807 に答える
0

その計算の結果は、information about sections in the result set, and for the index.UITableViewがフェッチしたデータをどのように表すかを追跡するためです。そして、はい、それはすべてパフォーマンスに関するものです。

于 2012-04-19T04:06:22.857 に答える