Kingfisher源码解读简介

1.通过泛型支持多个控件,如UIButton,NSButton(mac开发), imageView等等

  1. 先判断是否是强制刷新,如果是创建一个request,去下载。
  2. 如果不是再判断这个图片缓存有没有,有就返回在缓存中.memory,没有就继续判断磁盘中有没有,有就返回.disk,都没有返回.none
  3. 如果缓存中或者磁盘中有,就去取,没有就去新建一个request去下载
  4. 下载之后再缓存一下,同时根据需要存储到磁盘中去(初始化的option里面默认是缓存到硬盘的),并设置存储时间
  5. 一切完成之后就回去拿获取到的图片去渲染。

使用NSCache来存储图片到内存中去,NSCache的最大存储内存设置的是当前手机剩余内存的1/4,
每个缓存在内存中图片文件都有一个有效期,有效期只有5分钟,存储在磁盘中的有效期默认是7天
默认2分钟有一个定时器去检查缓存中的文件有没有过期,过期就删除
然后每次App如果收到didReceiveMemoryWarningNotification就会去清除缓存中的文件,
收到willTerminateNotification(进程终止), didEnterBackgroundNotification 进入后台的时候都会去清除磁盘中过期文件

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容