一、SDWebImage 實(shí)現(xiàn)原理:
1、首先讓占位圖先顯示。
2、SDWebImageManage交給 SDImageCache 先從內(nèi)存中查找是否有圖片,會(huì)以URL作為數(shù)據(jù)的索引在內(nèi)存中查找是否有對(duì)應(yīng)的緩存。
3、如果有緩存,通過(guò)代理進(jìn)行回調(diào)展示圖片。
4、如果內(nèi)存緩存中沒(méi)有找到,生成 NSInvocationOperation 添加到隊(duì)列,會(huì)通過(guò)MD5處理過(guò)的key來(lái)硬盤(pán)中查詢是否有圖片。
5、如果找到了,就把硬盤(pán)中的數(shù)據(jù)加載到內(nèi)存中并顯示。
6、如果沒(méi)有找到,會(huì)生成一個(gè)下載器向遠(yuǎn)程服務(wù)器發(fā)出請(qǐng)求開(kāi)始下載圖片。
7、圖片下載由NSURLConnection 來(lái)做,實(shí)現(xiàn)相關(guān)delegate來(lái)判斷圖片下載中、下載完成和下載失敗。
8、下載后的圖片會(huì)被保存到內(nèi)存和硬盤(pán)。
9、進(jìn)行界面展示。