LYImageCache
一个极简单的用于对UIImage
图像数据进行缓存操作的库。
这个库的实现主要参考了SDWebImage
中的图片缓存的实现。(大部分代码源于此,哈哈哈哈哈哈哈哈)…
目前只支持iOS平台(iOS 7.0及其以上),且需要启动ARC。
【传送门 - Github - lysongzi - LYImageCache】
一、说明
- 缓存主要为内存缓存,还有可选的磁盘缓存方式。
- 缓存可以指定磁盘缓存的目录。并提供一定的接口用于清除过期的缓存文件。
PS: 本库乃是模仿学习专用的。。要看完整的去看SDWebImage源码鸟亲。
二、部分改进
在SDWebImage中会在以下三个时刻做三种缓存清除操作。
- 接收到UIApplicationDidReceiveMemoryWarningNotification时会把内存中的缓存都清除。
- 接收到UIApplicationWillTerminateNotification时,会清除磁盘上过期的缓存文件。
- 接收到UIApplicationDidEnterBackgroundNotification时,会请求在后台继续运行清除磁盘中过期的缓存文件。
根据分析,应用一天内会多次被关闭或进入后台状态。所以可能会造成频繁的文件操作(哪怕有些时候根本就没有过期文件需要删除)。
所以我YY了一个小改进方案,维护一个属性记录最新一次进行磁盘缓存过期文件清理的时间,然后再设置一个值表明清理磁盘缓存的间隔期为多长(默认设置为12小时或24小时?)。只有当当前时间距离上一次磁盘缓存清理时间超过设定的时间间隔时,才去真正的执行磁盘缓存过期文件删除工作。(正在实现…)
等过了这一阵子我会更新一些博客详细分析一下这里面的结构的。
= =。反正并不复杂,大家应该能看懂的哈哈哈。
欢迎你的加入
毕竟是为了学习的!如果你有什么好的想法,可以fork
项目,然后向我发起pull request
,大家可以一起探讨一起进步啊~~~
要是能赏个star
就更好了。