2012-10-10 10 views
6

私はNSCacheの新機能です。iosのNSCacheにデータを保存する方法は?

いくつかのオブジェクトを生成するAPI呼び出しがあります。これらのオブジェクトをNSCacheに格納して、APIを再度呼び出す必要はありません。

NSCacheに保存できるデータの量。 NSCacheにデータを格納するための特定の制限がありますか?

私を助けてください。

答えて

10

documentationsample codeをご覧ください。

NSCacheオブジェクトは、NSDictionaryクラスと同様に、 にキーと値のペアを格納するコレクションのようなコンテナまたはキャッシュです。

Here Nick Zitzmannの説明が良いです。スレッドセーフであることが保証されて
1:

NSCacheは違いがあることで、NSMutableDictionaryに似ています。
2.アクセスするのがずっと遅いです。
3.時々オブジェクトが捨てられることがあります。費用と限度額は設定できますが、それに従うことは保証されていません。
4. CoreFoundationにはフリーダイヤルではありません。
5.キャッシュにあるオブジェクトの数を照会することはできません。
6.キャッシュを列挙することはできません。

NSCacheを使用して、気にしないオブジェクトを保存することをお勧めします。 は、それらが任意に破棄された場合にのみ表示されます。オブジェクトを 破壊してはならない場合、またはアクセス速度が問題になる場合は、代わりに NSMutableDictionaryを使用してください。あなたの関連性についてのドキュメントから

+0

ありがとうございます...サンプルコードありがとうございました.. –

+2

驚異的ですが、どれくらい遅いですか? –

1

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/NSCache_Class/Reference/Reference.html

NSCacheは、それがシステムのメモリのあまり使用しないことを確実に自動削除ポリシー、をたくさん持っています。他のアプリケーションによってメモリが必要な場合は、これらのポリシーが自動的に実行されます。これらのポリシーを呼び出すと、キャッシュからいくつかの項目が削除され、メモリの占有量が最小限に抑えられます。

+0

あなたの説明をお寄せいただきありがとうございます。しかし、どれくらいのデータをNSCacheに保存することができますか?NSCacheに2MBのデータを保存できますか? –

+0

@Paviドキュメントをご覧ください。 setTotalCostLimit:およびsetCountLimit:メソッド。 –

+0

@ParagBafnaありがとうございます。 –

関連する問題