SDWebImage的原始碼解讀

2021-08-05 21:35:03 字數 1049 閱讀 6806

sdwebimage共有17個oc檔案以及乙個多餘的標頭檔案,下面將會按照順序乙個乙個進行檔案的解讀(本人學藝不精,如果有不對的地方歡迎指出,有些細節的東西我也不算很理解,寫下這邊也算是方便以後用到的時候回顧):

1.    imagecontexttype

檔案:主要提供識別資料的格式,是nsdata的分類,擴充套件了乙個分類方法sd_imageformatforimagedata,該方法會根據資料的第乙個位元組的資料來判斷的格式:jpg、png、gif、tiff和webp,否則是undefined。

2.    webcache

檔案:這個檔案主要用於mac應用的開發,在這裡不做分析

3.    sdimagecache

檔案:主要是乙個管理檔案記憶體的類,這是乙個單例的類,會開出乙個單例在乙個單獨的執行緒管理的記憶體,提供將uiimage儲存到記憶體中的方法、查詢是否在記憶體和沙盒中的方法、從記憶體中獲取到物件uiimage等。

4.   

sdimagecacheconfig

5.   

sdwebimagecompat

6.   

sdwebimagedecoder

7.   

sdwebimage**********

檔案8.   

sdwebimage**********opeartion

9.   

sdwebimagemanager

10.

sdwebimageprefetcher

11.

uibuttom+webcache

12.

uiimage+gif

檔案:提供可以建立gif的uiimage物件

13.

uiimage+multiformat

檔案14.

uiimageview+highlightedwebcache

和uiimageview+webcache

檔案15.

uiview+webcache

檔案16.

uiview+webcacheoperation

SDWebImage原始碼解析

下面從uiimageview的載入開始看起,let s go void sd setimagewithurl nsurl url placeholderimage uiimage placeholder typedef ns options nsuinteger,sdwebimageoptions ...

azkaban web server原始碼解析

azkaban主要用於hadoop相關job任務的排程,但也可以應用任何需要排程管理的任務,可以完全代替crontab。azkaban主要分為web server 任務上傳,管理,排程 executor server 接受web server的排程指令,進行任務執行 1.資料表 projects 工...

JDK LinkedHashMap原始碼解析

今天來分析一下jdk linkedhashmap的源 public class linkedhashmapextends hashmapimplements map可以看到,linkedhashmap繼承自hashmap,並且也實現了map介面,所以linkedhashmap沿用了hashmap的大...