一、NSCache知識點(diǎn)補(bǔ)充
01.NSCache是專門用來進(jìn)行緩存處理的
-
02.NSCache簡單介紹:
- 2-1 NSCache是蘋果官方提供的緩存類漏麦,具體使用和NSDictionary類似驹沿,在AFN和SDWebImage框架中被使用來管理緩存
- 2-2 蘋果官方解釋NSCache在系統(tǒng)內(nèi)存很低時艘策,會自動釋放對象(但模擬器演示不會釋放)
建議:接收到內(nèi)存警告時主動調(diào)用removeAllObject方法釋放對象 - 2-3 NSCache是線程安全的,在多線程操作中渊季,不需要對NSCache加鎖
- 2-4 NSCache的Key只是對對象進(jìn)行Strong引用朋蔫,不是拷貝
-
03 屬性介紹:
- name:名稱
- delegete:設(shè)置代理
- totalCostLimit:緩存空間的最大總成本罚渐,超出上限會自動回收對象。默認(rèn)值為0驯妄,表示沒有限制
- countLimit:能夠緩存的對象的最大數(shù)量荷并。默認(rèn)值為0,表示沒有限制
- evictsObjectsWithDiscardedContent:標(biāo)識緩存是否回收廢棄的內(nèi)容
04 方法介紹
//在緩存中設(shè)置指定鍵名對應(yīng)的值青扔,0成本
- (void)setObject:(ObjectType)obj forKey:(KeyType)key;
//在緩存中設(shè)置指定鍵名對應(yīng)的值源织,并且指定該鍵值對的成本,用于計(jì)算記錄在緩存中的所有對象的總成本赎懦,
//出現(xiàn)內(nèi)存警告或者超出緩存總成本上限的時候雀鹃,緩存會開啟一個回收過程幻工,刪除部分元素
- (void)setObject:(ObjectType)obj forKey:(KeyType)key cost:(NSUInteger)g;
//刪除緩存中指定鍵名的對象
- (void)removeObjectForKey:(KeyType)key;
//刪除緩存中所有的對象
- (void)removeAllObjects;