iOS中的缓存计算和清除完整实例代码
发布时间 - 2026-01-11 00:48:54 点击率:次1.首先,一般我们项目中的缓存一般分为2大块,一个是自己缓存的一些数据;还有一个就是我们使用的SDWebImage这个第三方库给我们自动缓存的图片文件缓存了

<1>怎么计算缓存大小(主要是利用系统提供的NSFileManager类来实现)
$1.单个文件大小的计算
-(long long)fileSizeAtPath:(NSString *)path{
NSFileManager *fileManager=[NSFileManager defaultManager];
if([fileManager fileExistsAtPath:path]){
long long size=[fileManager attributesOfItemAtPath:path error:nil].fileSize;
return size;
}
return 0;
}
$2.文件夹大小的计算(要利用上面的$1提供的方法)
-(float)folderSizeAtPath:(NSString *)path{
NSFileManager *fileManager=[NSFileManager defaultManager];
NSString *cachePath=[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject];
cachePath=[cachePath stringByAppendingPathComponent:path];
long long folderSize=0;
if ([fileManager fileExistsAtPath:cachePath])
{
NSArray *childerFiles=[fileManager subpathsAtPath:cachePath];
for (NSString *fileName in childerFiles)
{
NSString *fileAbsolutePath=[cachePath stringByAppendingPathComponent:fileName];
long long size=[self fileSizeAtPath:fileAbsolutePath];
folderSize += size;
NSLog(@"fileAbsolutePath=%@",fileAbsolutePath);
}
//SDWebImage框架自身计算缓存的实现
folderSize+=[[SDImageCache sharedImageCache] getSize];
return folderSize/1024.0/1024.0;
}
return 0;
}
其中folderSize+=[[SDImageCache sharedImageCache] getSize];这行代码是SDWebImage给我们提供的计算本地缓存图片大小的方法....(当然了,这个方法的底层实现依然是用的NSFileManager做的)
上面2个方法结合起来使用,就可以计算我们产生多少缓存啦....
2.计算好了缓存,那么怎么清除呢??
//同样也是利用NSFileManager API进行文件操作,SDWebImage框架自己实现了清理缓存操作,我们可以直接调用。
-(void)clearCache:(NSString *)path{
NSString *cachePath=[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject];
cachePath=[cachePath stringByAppendingPathComponent:path];
NSFileManager *fileManager=[NSFileManager defaultManager];
if ([fileManager fileExistsAtPath:cachePath]) {
NSArray *childerFiles=[fileManager subpathsAtPath:cachePath];
for (NSString *fileName in childerFiles) {
//如有需要,加入条件,过滤掉不想删除的文件
NSString *fileAbsolutePath=[cachePath stringByAppendingPathComponent:fileName];
NSLog(@"fileAbsolutePath=%@",fileAbsolutePath);
[fileManager removeItemAtPath:fileAbsolutePath error:nil];
}
}
[[SDImageCache sharedImageCache] cleanDisk];
}
上面再清楚换存的时候也清除了2块地方,一个是我们自己缓存的文件夹;还有就是SDWebImage给我们缓存的图片文件....
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# ios 清除缓存
# ios清除应用缓存
# ios 清除缓存完整代码
# 给我们
# 好了
# 如有
# 我们可以
# 还有一个
# 结合起来
# 第三方
# 来实现
# 大家多多
# 就可以
# 这行
# 主要是
# 实现了
# 过滤掉
# 直接调用
# 当然了
# fileManager
# nil
# fileSizeAtPath
# NSString
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】
Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】
Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势
javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】
Laravel如何使用Blade组件和插槽?(Component代码示例)
laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法
Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤
如何快速登录WAP自助建站平台?
Android使用GridView实现日历的简单功能
Android实现代码画虚线边框背景效果
Python3.6正式版新特性预览
Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧
Laravel如何处理和验证JSON类型的数据库字段
Laravel中的Facade(门面)到底是什么原理
如何在云主机快速搭建网站站点?
Python文件流缓冲机制_IO性能解析【教程】
C语言设计一个闪闪的圣诞树
Laravel如何实现API资源集合?(Resource Collection教程)
手机网站制作与建设方案,手机网站如何建设?
浅谈Javascript中的Label语句
Laravel怎么清理缓存_Laravel optimize clear命令详解
Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明
再谈Python中的字符串与字符编码(推荐)
浅谈javascript alert和confirm的美化
jQuery中的100个技巧汇总
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
JavaScript如何实现倒计时_时间函数如何精确控制
JS弹性运动实现方法分析
高防服务器:AI智能防御DDoS攻击与数据安全保障
如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】
Laravel模型事件有哪些_Laravel Model Event生命周期详解
活动邀请函制作网站有哪些,活动邀请函文案?
详解Oracle修改字段类型方法总结
浅述节点的创建及常见功能的实现
Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践
Laravel如何自定义分页视图?(Pagination示例)
php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】
Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程
桂林网站制作公司有哪些,桂林马拉松怎么报名?
独立制作一个网站多少钱,建立网站需要花多少钱?
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
如何在阿里云高效完成企业建站全流程?
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】
zabbix利用python脚本发送报警邮件的方法
Laravel如何使用Passport实现OAuth2?(完整配置步骤)
香港服务器如何优化才能显著提升网站加载速度?
Thinkphp 中 distinct 的用法解析

