iOS利用SDWebImage实现缓存的计算与清理

可以仅仅清理图片缓存, 也可以清理所有的缓存文件(包括图片、视频、音频等).
摘要由CSDN通过智能技术生成

一般我们项目中的缓存一般分为2大块:一个是自己缓存的一些数据;还有一个就是我们使用的SDWebImage这个第三方库给我们自动缓存的图片文件缓存了.


实际项目中会配合设置里去清理缓存, 效果截图如下:

实际项目截图.jpeg

一、实现功能

1、仅仅清理图片缓存

2、清理所有缓存文件

二、程序实现

1、仅仅清理图片缓存

如果你只想清理图片缓存,且是用SDWebImage加载的网络图片,那么你可以用SDWebImage内部封装方法清除图片缓存.

导入头文件:

1
#import <SDImageCache.h>

获取缓存图片大小并异步清除图片缓存:

1
2
3
4
5
6
7
8
//获取缓存图片的大小(字节)
NSUInteger bytesCache = [[SDImageCache sharedImageCache] getSize];
//换算成 MB (注意iOS中的字节之间的换算是1000不是1024)
float  MBCache = bytesCache/1000/1000;
//异步清除图片缓存 (磁盘中的)
dispatch_async(dispatch_get_global_queue(0, 0), ^{
     [[SDImageCache sharedImageCache] clearDisk];
});


2、清理所有缓存文件

如果你想清理所有的缓存文件(包括图片、视频、音频等), 那你可以用如下方法。需要你把caches的路径传过去,然后计算caches文件夹下内容的大小,然后根据其大小再判断是否清除缓存。(根据路径删除文件或文件夹)

为了让代码看起来更整洁,这里将缓存的计算及清理封装自定义一个工具类CleanCaches.

利用SDWebImage计算并清理缓存:

  1. 计算单个文件大小:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值