IOS SDWebImage實現原理詳解

weixin_33968104發表於2017-04-06

在之前我寫過SDWebImage的使用方法,主要是用與獲取網路圖片,沒有看過的朋友可以看看。

這篇文章將主要介紹SDWebImage的實現原理,主要針對於獲取網路圖片的原理,如果沒有第三方我們該怎麼去做,當然我知識用文字去介紹,我想花大把的時間去深入理解我們用不到的東西,是很不值得的,不過興趣的朋友可以去其他部落格上查詢相應資訊,畢竟學無止境。好了下面開始進入正題。

1)當我門需要獲取網路圖片的時候,我們首先需要的便是URl沒有URl什麼都沒有,獲得URL後我們SDWebImage實現的並不是直接去請求網路,而是檢查圖片快取中有沒有和URl相關的圖片,如果有則直接返回image,如果沒有則進行下一步。

2)當圖片快取中沒有圖片時,SDWebImage依舊不會直從網路上獲取,而是檢查沙盒中是否存在圖片,如果存在,則把沙盒中對應的圖片存進image快取中,然後按著第一步的判斷進行。

3)如果沙盒中也不存在,則顯示佔點陣圖,然後根據圖片的下載佇列快取判斷是否正在下載,如果下載則等待,避免二次下載。如果不存則建立下載佇列,下載完畢後將下載操作從佇列中清除,並且將image存入圖片快取中。


3238845-0de708c9f45417b0.png

相關文章