『導言』
iOS開發中經常用到下載圖片的第三方SDWebImage
框架,進行有效的圖片下載和緩存。那么對SDWebImage框架你了解多少?面試
中可能問道那些問題?SDWebImage 下載鏈接
-
表格整理:
序號 | 問題 | 答案 | 代碼 |
---|---|---|---|
1 | 清空緩存 clearDisk 和 cleanDisk 區別? |
cleanDisk :清楚過期緩存,計算當前緩存的大小 ,和設置的最大緩存數量比較,如果超出那么會繼續刪除(按照文件了創建的先后順序)過期時間:7 天 ; clearDisk : 粗暴的直接刪除,然后從新創建 |
\ |
2 | 如何取消當前所有所有操作NSOperation ? |
取消所有操作對象 | [[SDWebImageManager sharedManager] cancelAll]; |
3 |
最大并發數 ? |
max =6
|
_downloadQueue.maxConcurrentOperationCount = 6; |
4 | 內存文件 的保存名稱 如何處理? |
拿到圖片的URL路徑,對該路徑進行MD5 加密 |
\ |
5 | 該框架內部對內存警告 的處理方式? |
內部通過監聽通知Notification 進行清理緩存 |
\ |
6 | 如何判斷圖片 的類型 ? |
在判斷圖片類型時候只匹配第一個字節
|
\ |
7 | 該框架對緩存 處理的方式? |
以前: 內存緩存用可變字典dic; 本第三方用NSCache
|
\ |
8 | 隊列中的任務的處理方式? |
FIFO :先進先出First In First Out
|
\ |
9 | 如何下載 圖片? |
發送網絡請求 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架構圖:
SDWebImageClassDiagram.png
SDWebImageSequenceDiagram.png
輪廓思路圖.png
-
注: