美文网首页
SDWebImage

SDWebImage

作者: 奔跑的蜗牛最开心 | 来源:发表于2018-03-27 19:37 被阅读5次

    SDWebImage默认的缓存时间是1周

    SDWebImage特性

    1)提供 UIImageView, UIButton, MKAnnotationView 的分类,用来显示网络图片,以及缓存管理

    2)异步下载图片

    3)异步缓存(内存+磁盘),并且自动管理缓存有效性

    4)后台图片解压缩

    5)同一个 URL 不会重复下载

    6)自动识别无效 URL,不会反复重试

    7)不阻塞主线程

    8)高性能

    9)使用 GCD 和 ARC

    支持多种图片格式(包括 WebP 格式)

    支持动图(GIF)

    流程图




    目录结构


    清扫磁盘缓存

    每新加载一张图片,就会新增一份缓存,时间一长,磁盘上的缓存只会越来越多,所以我们需要定期清除部分缓存。值得注意的是,清扫磁盘缓存(clean)和清空磁盘缓存(clear)是两个不同的概念,清空是删除整个缓存目录,清扫只是删除部分缓存文件。

    清扫磁盘缓存有两个指标:一是缓存有效期,二是缓存体积最大限制。SDImageCache中的缓存有效期是通过 maxCacheAge 属性来设置的,默认值是 1 周,缓存体积最大限制是通过  maxCacheSize 来设置的,默认值为 0。

    SDImageCache 在初始化时添加了通知观察者,所以在应用即将终止时和退到后台时,都会调用 -cleanDiskWithCompletionBlock: 方法来异步清扫缓存,清扫磁盘缓存的逻辑是,先遍历所有缓存文件,并根据文件的修改时间来删除过期的文件,同时记录剩下的文件的属性和总体积大小,如果设置了 maxCacheAge 属性的话,接下来就把剩下的文件按修改时间从小到大排序(最早的排最前面),最后再遍历这个文件数组,一个一个删,直到总体积小于 desiredCacheSize 为止,也就是 maxCacheSize 的一半。

    内存清理(memory):内存警报的时候清理

    缓存(Disk):默认一周,设置maxCacheAge来清理 便利修改的时间修复

    相关文章

      网友评论

          本文标题:SDWebImage

          本文链接:https://www.haomeiwen.com/subject/mrnscftx.html