SDWebImage
1> 圖片文件緩存的時間有多長:1周_maxCacheAge = kDefaultCacheMaxCacheAge
2> SDWebImage 的內存緩存是用什么實現的?NSCache
3> SDWebImage 的最大并發數是多少?maxConcurrentDownloads = 6是程序固定死了,可以通過屬性進行調整!
4> SDWebImage 支持動圖嗎?GIF#import[UIImage animatedImageWithImages:images duration:duration];
5> SDWebImage是如何區分不同格式的圖像的
根據圖像數據第一個字節來判斷的!
PNG:壓縮比沒有JPG高,但是無損壓縮,解壓縮性能高,蘋果推薦的圖像格式!
JPG:壓縮比最高的一種圖片格式,有損壓縮!最多使用的場景,照相機!解壓縮的性能不好!
GIF:序列楨動圖,特點:只支持256種顏色!最流行的時候在1998~1999,有專利的!
6> SDWebImage 緩存圖片的名稱是怎么確定的!
md5
如果單純使用 文件名保存,重名的幾率很高!
使用 MD5 的散列函數!對完整的 URL 進行 md5,結果是一個 32 個字符長度的字符串!
7> SDWebImage 的內存警告是如何處理的!
利用通知中心觀察
- UIApplicationDidReceiveMemoryWarningNotification 接收到內存警告的通知
執行 clearMemory 方法,清理內存緩存!
- UIApplicationWillTerminateNotification 接收到應用程序將要終止通知
執行 cleanDisk 方法,清理磁盤緩存!
- UIApplicationDidEnterBackgroundNotification 接收到應用程序進入后臺通知
執行 backgroundCleanDisk 方法,后臺清理磁盤!
通過以上通知監聽,能夠保證緩存文件的大小始終在控制范圍之內!
clearDisk 清空磁盤緩存,將所有緩存目錄中的文件,全部刪除! 實際工作,將緩存目錄直接刪除,再次創建一個同名空目錄!