『导言』
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架构图:
-
注: