iOS SDWebImage

//聯(lián)系人:石虎QQ: 1224614774昵稱:嗡嘛呢叭咪哄

*如何學(xué)習(xí)第三方框架

一.準(zhǔn)備工作

如何獲得?http://github.com

搜索:sdwebImage

github上所有框架都不要download

1.帶版本庫克隆到本地

$ git clone --recursive https://github.com/rs/SDWebImage.git

//更新服務(wù)器的代碼,進(jìn)入存放代碼的位置

$ git pull

提示$ git clone --help

--recursive遞歸,如果第三方框架有其他的依賴,會(huì)一起clone到本地

2.打開項(xiàng)目,運(yùn)行測試程序SDWebImage.xcworkspace

如果提示:clang: error: no input files通常是因?yàn)榈谌娇蚣苓€依賴其他的框架

3.通常作者提供的演示程序,能夠最快的找到如何使用的方法,以及細(xì)節(jié)!

4.看官方首頁文檔,找到最重要的方法!

5.建立"分支"-同樣適合走向工作崗位

在Xcode中,選擇source control-Branch-New Branch(分支)

建立分支可以讓我們放手去嘗試!

二.測試第三方框架的功能!

1.拖拽框架的時(shí)候,不要copy到項(xiàng)目中,保證有一個(gè)唯一的地方框架的副本,能夠讓自己的學(xué)習(xí)有效的積累。

2.閱讀代碼,找到關(guān)鍵代碼閱讀!

找到關(guān)鍵方法:sd_setImageWithURL

提示:不要從第一個(gè)文件開始看起

3.不清楚的地方,可以創(chuàng)建測試程序運(yùn)行,測試效果,閱讀代碼未必能夠看清每一個(gè)細(xì)節(jié)。

4.變閱讀代碼,變寫注釋!

github.com/liufan321

SDWebImage有一個(gè)分支“我的學(xué)習(xí)”

三.常用方法

1>常用方法

- (void)sd_setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder;

- (void)sd_setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder options:(SDWebImageOptions)options;

- (void)sd_setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder completed:(SDWebImageCompletionBlock)completedBlock;

- (void)sd_setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder options:(SDWebImageOptions)options progress:(SDWebImageDownloaderProgressBlock)progressBlock completed:(SDWebImageCompletionBlock)completedBlock;

2>? SDWebImageOptions

* SDWebImageRetryFailed :下載失敗后,會(huì)自動(dòng)重新下載

* SDWebImageLowPriority :當(dāng)正在進(jìn)行UI交互時(shí),自動(dòng)暫停內(nèi)部的一些下載操作

* SDWebImageRetryFailed | SDWebImageLowPriority :擁有上面2個(gè)功能

四.面試題:

1.磁盤緩存有多長時(shí)間

答:一周

2SDWebImage底層是怎么實(shí)現(xiàn)的?

答: PPT的"cell下載圖片思路–有沙盒緩存"

3.SDWebImage中的GIF是怎么播放的?

答:1> #import

2>讀取出GIF文件中的每一楨圖片,設(shè)置UIImageView的可動(dòng)畫數(shù)組

3>自動(dòng)計(jì)算gif播放的時(shí)長

另外,如果用SDWebImage顯示gif,什么附加操作都不用做

4.SDWebImage的內(nèi)存警告是如何處理的?

答:1>? SDImageCache在實(shí)例化的時(shí)候會(huì)注冊(cè)監(jiān)聽?wèi)?yīng)用程序通知

2>一旦接收到內(nèi)存警告,直接清理內(nèi)存緩存

3>應(yīng)用程序被終止前,清理過期磁盤緩存

4>應(yīng)用程序退出到后臺(tái),在后臺(tái)清理磁盤緩存

//清理磁盤緩存

- (void)clearMemory;

//清除硬盤緩存

- (void)clearDisk;

//清理硬盤緩存(超過時(shí)間的圖片)

- (void)cleanDisk;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容