SDWebImage查询图片缓存大小及清除缓存

SDWebImage查询图片缓存大小及清除缓存

IOS小彩虹2021-08-16 4:00:54180A+A-

在开发中常用到的一个图片加载的第三方框架sdwebimage,app也有入口需要清除缓存(这里只计算sdwebimage的图片缓存)

1.首先导入头文件

#import <SDImageCache.h>

2.使用方法及计算方法

使用方法:

//计算SDWebImage缓存大小
NSUInteger size = [[SDImageCache sharedImageCache] totalDiskSize];
NSString *cacheStr = [self fileSizeWithInterge:size];
self.cacheL.text = cacheStr;

计算方法:

//获取图片缓存大小
- (NSString *)fileSizeWithInterge:(NSInteger)size {
      // 1k = 1024, 1m = 1024k
      if (size < 1024) { //小于1k
          return [NSString stringWithFormat:@"%ldB",(long)size];

      } else if (size < 1024 * 1024) { //小于1M
          CGFloat cFloat = size / 1024;
          return [NSString stringWithFormat:@"%.1fK",cFloat];

      } else if (size < 1024 * 1024 * 1024) { //小于1G
          CGFloat cFloat = size / (1024 * 1024);
          return [NSString stringWithFormat:@"%.1fM",cFloat];
      } else { //大于1G
          CGFloat cFloat = size / (1024 * 1024 * 1024);
          return [NSString stringWithFormat:@"%.1fG",cFloat];
      }
}

3.清除缓存的方法,一般清除了缓存可以直接清零,也可以直接在查询计算一遍

//清除缓存
[MBProgressHUD showActivityMessageInWindow:@"正在清理缓存"];
[[SDImageCache sharedImageCache] clearMemory];
[[SDImageCache sharedImageCache] clearDiskOnCompletion:^{
    [MBProgressHUD hideHUD];
}];

注意事项:如果进入页面,就开始查询图片缓存,在缓存比较大的情况下,可能会查询缓慢,操作可以放到异步线程中执行

WS(ws);
dispatch_async(dispatch_get_main_queue(), ^{
    //计算SDWebImage缓存大小
    NSUInteger size = [[SDImageCache sharedImageCache] totalDiskSize];
    NSString *cacheStr = [ws fileSizeWithInterge:size];
    ws.cacheL.text = cacheStr;
});

点击这里复制本文地址 以上内容由权冠洲的博客整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

支持Ctrl+Enter提交

联系我们| 本站介绍| 留言建议 | 交换友链 | 域名展示
本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除

权冠洲的博客 © All Rights Reserved.  Copyright quanguanzhou.top All Rights Reserved
苏公网安备 32030302000848号   苏ICP备20033101号-1
本网站由 提供CDN/云存储服务

联系我们