
『導言』
iOS開發(fā)中經(jīng)常用到下載圖片的第三方SDWebImage框架,進行有效的圖片下載和緩存。那么對SDWebImage框架你了解多少?面試中可能問道那些問題?SDWebImage 下載鏈接
-
表格整理:
| 序號 | 問題 | 答案 | 代碼 |
|---|---|---|---|
| 1 | 清空緩存 clearDisk和 cleanDisk區(qū)別? |
cleanDisk:清楚過期緩存,計算當前緩存的大小,和設置的最大緩存數(shù)量比較,如果超出那么會繼續(xù)刪除(按照文件了創(chuàng)建的先后順序)過期時間:7天 ; clearDisk: 粗暴的直接刪除,然后從新創(chuàng)建 |
\ |
| 2 | 如何取消當前所有所有操作NSOperation? |
取消所有操作對象 | [[SDWebImageManager sharedManager] cancelAll]; |
| 3 |
最大并發(fā)數(shù)? |
max =6
|
_downloadQueue.maxConcurrentOperationCount = 6; |
| 4 | 內(nèi)存文件的保存名稱如何處理? |
拿到圖片的URL路徑,對該路徑進行MD5加密 |
\ |
| 5 | 該框架內(nèi)部對內(nèi)存警告的處理方式? |
內(nèi)部通過監(jiān)聽通知Notification進行清理緩存 |
\ |
| 6 | 如何判斷圖片的類型? |
在判斷圖片類型時候只匹配第一個字節(jié)
|
\ |
| 7 | 該框架對緩存處理的方式? |
以前: 內(nèi)存緩存用可變字典dic; 本第三方用NSCache
|
\ |
| 8 | 隊列中的任務的處理方式? |
FIFO:先進先出First In First Out
|
\ |
| 9 | 如何下載圖片? |
發(fā)送網(wǎng)絡請求 NSURLConnection
|
\ |
| 10 | 請求超時時限? |
15s |
_downloadTimeout = 15.0; |
-
SDWebImage如何用?
(1 )Objective-C:
#import <SDWebImage/UIImageView+WebCache.h>
[imageView sd_setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"]
placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
(2 )Swift:
@import SDWebImage
imageView.sd_setImage(with: URL(string: "http://www.domain.com/path/to/image.jpg"), placeholderImage: UIImage(named: "placeholder.png"))
-
SDWebImage架構(gòu)圖:

SDWebImageClassDiagram.png

SDWebImageSequenceDiagram.png

輪廓思路圖.png
-
注: