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