iOS-SDWebImage相关面试题
2019-02-25 本文已影响9人
路飞_Luck
一 Clear和Clean的区别
-
Clear
:先把之前的缓存文件夹删除掉,然后在新建一个文件夹 -
Clean
:先删除过期的文件,然后计算剩余缓存文件的大小(currrentSize)>maxSize,继续删除,按照它缓存文件创建的时间删除,直到(currrentSize)<=maxSize
二 磁盘缓存时间
- 默认是一周,在
SDImageCacheConfig
类中
static const NSInteger kDefaultCacheMaxCacheAge = 60 * 60 * 24 * 7; // 1 week
三 内存的缓存机制
NSCache
四 最大并发数量 3条
默认情况下,队列最大并发数是3。如果需要的话,我们可以通过SDWebImageDownloader类的 maxConcurrentDownloads 属性来修改。
@property (assign, nonatomic) NSInteger maxConcurrentDownloads;
五 SDWeblmage任务的执行?是怎么实现的?
- 两种: 先进先出和先进后出
- 实现: 依赖来实现的
六 默认的缓存路径
沙盒下的default下
七 怎么处理图片的名称?
对URL进行MD5加密
八 默认的超时时间是多少?
15秒
九 该框架内部对内存警告的处理方式?
监听系统发出的警告通知,然后清空内存缓存
十 NSCache和字典的区别
NSCache使用方法和可变字典类似80% 它线程安全 可设置缓存成本 ,通过代理方法能拿到被处理的对象
可以自动清理缓存数据
十一 如何计算图片的成本?
长宽缩放比例*缩放比例
image.size.height * image.size.width * image.scale * image.scale
十二 保证错误的URL不会被尝试重新下载
因为内部设置了一个黑名单 (内部是NSMutableset)
本文参考iOS面试题-每日十道-第二天 SDWebImage相关面试题,非常感谢该作者。