基礎(chǔ)了解可參考SDWebImage的使用以及原理介紹球涛。
問(wèn)題1:加載高清大圖時(shí)怎么處理躁染?
解決:解決方法在此? ? ? ? 更深入學(xué)習(xí)可參考:優(yōu)化高分辨率圖
AFN也可以用來(lái)加載圖片粹淋。
問(wèn)題2: SDWebImage 的內(nèi)存警告是如何處理的霍转?
解決:利用通知中心觀察
- UIApplicationDidReceiveMemoryWarningNotification?接收到內(nèi)存警告的通知
執(zhí)行?clearMemory?方法鲁捏,清理內(nèi)存緩存鹊汛!
- UIApplicationWillTerminateNotification?接收到應(yīng)用程序?qū)⒁K止通知
執(zhí)行?cleanDisk?方法朋凉,清理磁盤緩存州丹!
- UIApplicationDidEnterBackgroundNotification?接收到應(yīng)用程序進(jìn)入后臺(tái)通知
執(zhí)行?backgroundCleanDisk?方法,后臺(tái)清理磁盤杂彭!
通過(guò)以上通知監(jiān)聽(tīng)墓毒,能夠保證緩存文件的大小始終在控制范圍之內(nèi)!
clearDisk?清空磁盤緩存亲怠,將所有緩存目錄中的文件欢搜,全部刪除锌雀!實(shí)際工作,將緩存目錄直接刪除,再次創(chuàng)建一個(gè)同名空目錄刷袍!
問(wèn)題3:SDWebImage 緩存圖片的名稱是怎么確定的?
md5
如果單純使用 文件名保存迅办,重名的幾率很高蛔添!
使用 MD5 的散列函數(shù)!對(duì)完整的 URL 進(jìn)行 md5姻报,結(jié)果是一個(gè) 32 個(gè)字符長(zhǎng)度的字符串己英!
問(wèn)題4:SDWebImage是如何區(qū)分不同格式的圖像的
根據(jù)圖像數(shù)據(jù)第一個(gè)字節(jié)來(lái)判斷的!
PNG:壓縮比沒(méi)有JPG高吴旋,但是無(wú)損壓縮损肛,解壓縮性能高,蘋果推薦的圖像格式荣瑟!
JPG:壓縮比最高的一種圖片格式治拿,有損壓縮!最多使用的場(chǎng)景笆焰,照相機(jī)劫谅!解壓縮的性能不好!
GIF:序列楨動(dòng)圖嚷掠,特點(diǎn):只支持256種顏色捏检!最流行的時(shí)候在1998~1999,有專利的不皆!
問(wèn)題5:SDWebImage 的最大并發(fā)數(shù)是多少贯城?
maxConcurrentDownloads = 6
是程序固定死了,可以通過(guò)屬性進(jìn)行調(diào)整霹娄!
問(wèn)題6:SDWebImage 的內(nèi)存緩存是用什么實(shí)現(xiàn)的能犯?
NSCache
問(wèn)題7:圖片文件緩存的時(shí)間有多長(zhǎng)鲫骗?
? ? 1周 ?_maxCacheAge = kDefaultCacheMaxCacheAge
問(wèn)題8:clear 和 clean 的區(qū)別?
? ? clear :? 先把之前的緩存文件夾刪除掉,然后在新建一個(gè)文件夾踩晶。
? ? clean:? 先刪除過(guò)期的文件执泰,然后計(jì)算剩余緩存文件的大小(currrentSize)>maxSize,繼續(xù)刪除,按照它緩存文件創(chuàng)建的時(shí)間刪除,直到(currrentSize)<=maxSize
后續(xù)等待完善渡蜻。坦胶。。晴楔。