7
因此NSCache對象應該保持活動狀態以保留緩存的數據,這意味着用於存儲數據的同一對象必須用於檢索數據。Objective-c - 通過靜態NSMutableDictionary使用NSCache的好處?
- 所以問題是在使用NSCache的單點NSDictionary中保存我的數據有什麼意義?
- 什麼是使用NSCache的首選方式?靜態字段?繼承它並創建一個單身?
因此NSCache對象應該保持活動狀態以保留緩存的數據,這意味着用於存儲數據的同一對象必須用於檢索數據。Objective-c - 通過靜態NSMutableDictionary使用NSCache的好處?
一個緩存有一些怪癖,使得它很適合用作緩存,而不適合用作通用集合。如文檔指出:
NSCache對象從其他可變集合在幾個方面有所不同:
- 的NSCache類整合各種自動刪除策略,這確保它不會使用太多的系統的內存。如果其他應用程序需要內存,系統會自動執行這些策略。調用時,這些策略會從緩存中刪除一些項目,從而最大限度地減少內存佔用量。
- 您可以從不同線程添加,刪除和查詢緩存中的項目,而無需自行鎖定緩存。
- 從NSCache對象中檢索某些內容會返回一個自動釋放的結果。
- 與NSMutableDictionary對象不同,緩存不會複製放入其中的關鍵對象。
這些功能對於NSCache類是必需的,因爲緩存可能決定在後臺自動異步調整自身,如果它被調用來釋放內存。
測試時務必小心。「AssertEqualObjects」斷言不會在兩個不同但空的NSCache實例上工作 –