1

NSCoding を使用してクラスのインスタンスを保存/読み込みたいです。各クラスには、個別のキャッシュ時間/存続時間が必要です。アプリの起動時に、有効期限が切れていない場合はクラスのインスタンスをキャッシュからロードするか、通常どおり作成する必要があります。

この問題は何百回も解決されたに違いありません....

これを行うための適切なフレームワークはありますか、それとも自分で作成する必要がありますか?

4

2 に答える 2

2

NSCacheを試すことができますNSCacheはNSCodingプロトコルに準拠していないため、キャッシュをアーカイブ/アーカイブ解除できません。

NSCacheオブジェクトは、NSDictionaryクラスと同様に、キーと値のペアを格納するコレクションのようなコンテナまたはキャッシュです。多くの場合、開発者はキャッシュを組み込んで、作成に費用がかかる一時的なデータを含むオブジェクトを一時的に保存します。これらのオブジェクトを再利用すると、値を再計算する必要がないため、パフォーマンスが向上します。ただし、オブジェクトはアプリケーションにとって重要ではなく、メモリが不足している場合は破棄できます。破棄された場合、それらの値は必要に応じて再計算する必要があります。

于 2012-04-18T11:39:26.643 に答える
1

明確にするために、を使用して、クラスではなくオブジェクトを保存またはロードできます。NSCoding

これを行うフレームワークを知りません。ファイルの変更時間をキャッシュ時間として使用するか、別のデータベースに保持することができます。異なるクラスが多すぎない場合はNSUserDefaults、その別のデータベースとして使用できます。各クラスは、独自の存続時間を知るようにコード化されるだけです。

于 2012-04-18T11:53:01.743 に答える