1、clear 和 clean
clear 先把之前的缓存文件夹删除掉,然后新建一个文件夹
clean 先删除过期的文件,然后计算剩余缓存文件的大小 currentSize > maxSize,继续删除,按照它缓存文件创建的时间删除,知道currentSize <= maxSize
2、内存缓存时间是多久?
一周
3、内存缓存机制?
NSCache
4、最大并发量
6条,可以通过SDWebImageDownloader类的maxConcurrentDownloads属性来修改
5、SDWebImage 任务的执行? 是怎么实现的?
两种:先进先出,以队列的方式,按照先进先出的顺序下载。这是默认的下载顺序 SDWebImageDownloaderFIFOExecutionOrder
后进先出,以栈的方式,按照后进先出的顺序下载。 SDWebImageDownloaderLIFOExecutionOrder
实现:依赖来实现的
6、默认的缓存路径
沙盒下的 default 下
7、怎么处理图片的名称?
对URL进行MD5加密
8、如何判读图片的第一个字节
得到二进制的第一个字节
9、使用什么下载图片?
NSURLConnection类,用代理方法下载图片
10、默认的超时时间是多少?
15秒
11、该框架内部对内存警告的处理方式?
监听系统发出的警告通知,然后清空内存缓存
12、NSCache和字典的区别
NSCache使用方法和可变字典类似,它线程安全 可设置缓存成本,通过代理方法能拿到被处理的对象,可以自动清理缓存数据
13、如何计算图片的成本?
长宽缩放比例 * 缩放比例
14、保证错误的URL不会被尝试重新下载
因为内部设置了一个黑名单 NSMutableset