XZ_iOS中清除缓存的实现

本文介绍两种缓存管理方法:一是利用SDWebImage清除图片缓存并计算缓存大小;二是通过文件管理者遍历并清除cache文件夹中的缓存。文中提供了具体的实现思路和技术细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

清除缓存的两种实现方式

计算缓存的大小,然后清除缓存分两种:1>图片缓存;2>cache文件夹中的缓存。

1>对于清除图片缓存:SDWebImage就可以做到。

// 计算文件大小

   NSUInteger imageSize = [SDImageCachesharedImageCache].getSize;

    // 进行单位转换:将byte转成M

    double byteSize = imageSize / 1000.0 / 1000.0;

    // 清除缓存

    // 清除过期缓存

    // [[SDImageCache sharedImageCache] cleanDisk];

    // 清除所有图片缓存

    [[SDImageCachesharedImageCache] clearDisk];

2>cache文件夹中的缓存:使用文件管理者计算缓存大小,然后清除缓存的文件夹

实现的思路是:文件夹没有大小属性,只有文件有大小属性。遍历每一个文件夹中的文件,将每一个文件的大小加起来,得到的就是cache文件夹的大小。

 //文件管理者

    NSFileManager *mgr = [NSFileManagerdefaultManager];

    // 缓存的路径

    NSString *caches =[NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask, YES)lastObject];

    // 获取所有的子路径

    NSArray *subpaths = [mgr subpathsAtPath:caches];

    // 文件的总的字节数

    NSInteger totalByteSize = 0;

    for (NSString *subpathin subpaths) {

        // 子路径的全路径

        NSString *fullSubpath = [caches stringByAppendingPathComponent:subpath];

        // 判断是不是文件

        BOOL dir = NO;

        [mgr fileExistsAtPath:fullSubpath isDirectory:&dir];

        if (dir == NO) { // 文件

            totalByteSize += [[mgr attributesOfItemAtPath:fullSubpatherror:nil][NSFileSize]integerValue];

        }

    }

    // 删除caches文件夹中的所有内容

    [mgr removeItemAtPath:cacheserror:nil];


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值