iOS-SDWebImage相关面试题

一 Clear和Clean的区别
  1. Clear:先把之前的缓存文件夹删除掉,然后在新建一个文件夹
  2. 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相关面试题,非常感谢该作者。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容