SDWebImage缓存操作

在用户连接网络,获取网络资源的时候,SDWebImage会自动帮我们进行数据的缓存,如果要对缓存进行处理,我们必须知道SDWebImage是如何对我们的数据进行缓存操作的,首先导入--SDImageCache.h头文件,发现创建对象的方法是一个单例,这里有一个getSize方法,返回一个NSInteger类型的数据,就是缓存的大小,这时候,我们观察一下发现SDWebimage就是获取沙盒中的cache路径,我们点击进去然后看一下,在default文件中看到了缓存的图片文件,名称都是经过十六进制加密的,之所以这么用是因为,为了防止文件重名,言归正传,使用NSFileManager文件管理者调用attributesOfItemAtPath方法将文件的路径传进去。返回一个字典类型的数据,调用fileSize方法就可以获取缓存的大小

创建cell的方法里可以做一个测试


发现获取的缓存大小是两个不同的值,我们模仿的实在是小的太不合常理了,所以猜测模仿的方法只是获取单个文件的大小,不能获取整个的,为什么呢?我们再次点击进去SDImageCache里看一下SDWebImage是怎么做的,


用了枚举遍历出来了所有子路径下的文件然后进行累加,现在我们就好办了,


可是两次算出来的结果是不一样的,自己算出来的稍微大了一点,打印出来所有子文件后发现,可能是包含了文件夹和隐藏文件的缘故,所以加两句代码


这样就算出来和SDWebImage的大小一样了,接下来就可以对缓存进行操作了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值