1.通过泛型支持多个控件,如UIButton,NSButton(mac开发), imageView等等
- 先判断是否是强制刷新,如果是创建一个request,去下载。
- 如果不是再判断这个图片缓存有没有,有就返回在缓存中.memory,没有就继续判断磁盘中有没有,有就返回.disk,都没有返回.none
- 如果缓存中或者磁盘中有,就去取,没有就去新建一个request去下载
- 下载之后再缓存一下,同时根据需要存储到磁盘中去(初始化的option里面默认是缓存到硬盘的),并设置存储时间
- 一切完成之后就回去拿获取到的图片去渲染。
使用NSCache来存储图片到内存中去,NSCache的最大存储内存设置的是当前手机剩余内存的1/4,
每个缓存在内存中图片文件都有一个有效期,有效期只有5分钟,存储在磁盘中的有效期默认是7天
默认2分钟有一个定时器去检查缓存中的文件有没有过期,过期就删除
然后每次App如果收到didReceiveMemoryWarningNotification就会去清除缓存中的文件,
收到willTerminateNotification(进程终止), didEnterBackgroundNotification 进入后台的时候都会去清除磁盘中过期文件