iOS开发之1行代码实现缓存计算及清除缓存
话不多说,直接撸代码
// //gzhCache.h //cache // //Createdby郭志贺on2020/5/27. //Copyright©2020郭志贺.Allrightsreserved. // #importNS_ASSUME_NONNULL_BEGIN @interfacegzhCache:NSObject ///计算缓存大小 +(float)filePath; ///清理缓存 +(void)clearCache; @end NS_ASSUME_NONNULL_END
// //gzhCache.m //cache // //Createdby郭志贺on2020/5/27. //Copyright©2020郭志贺.Allrightsreserved. // #import"gzhCache.h" @implementationgzhCache //显示缓存大小 +(float)filePath{ NSString*cachPath=[NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES)firstObject]; return[selffolderSizeAtPath:cachPath]; } //计算单个文件的大小 +(longlong)fileSizeAtPath:(NSString*)filePath{ NSFileManager*manager=[NSFileManagerdefaultManager]; if([managerfileExistsAtPath:filePath]){ return[[managerattributesOfItemAtPath:filePatherror:nil]fileSize]; } return0; } //遍历文件夹获得文件夹大小,返回多少M +(float)folderSizeAtPath:(NSString*)folderPath{ NSFileManager*manager=[NSFileManagerdefaultManager]; if(![managerfileExistsAtPath:folderPath])return0; NSEnumerator*childFilesEnumerator=[[managersubpathsAtPath:folderPath]objectEnumerator]; NSString*fileName; longlongfolderSize=0; while((fileName=[childFilesEnumeratornextObject])!=nil){ NSString*fileAbsolutePath=[folderPathstringByAppendingPathComponent:fileName]; folderSize+=[selffileSizeAtPath:fileAbsolutePath]; } returnfolderSize/(1024.0*1024.0); } //清理缓存 +(void)clearCache{ NSString*cachPath=[NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES)firstObject]; NSArray*files=[[NSFileManagerdefaultManager]subpathsAtPath:cachPath]; NSLog(@"cachpath=%@",cachPath); for(NSString*pinfiles){ NSError*error=nil; NSString*path=[cachPathstringByAppendingPathComponent:p]; if([[NSFileManagerdefaultManager]fileExistsAtPath:path]){ [[NSFileManagerdefaultManager]removeItemAtPath:patherror:&error]; } } [selfperformSelectorOnMainThread:@selector(clearCachSuccess)withObject:nilwaitUntilDone:YES]; } +(void)clearCachSuccess{ NSLog(@"清理成功"); } @end
需要查询大小的地方使用:
NSString*str=[NSStringstringWithFormat:@"%.2fM",[gzhCachefilePath]];
清理的方法调用
[gzhCacheclearCache];
以上内容仅代表本菜鸟看法,复制可直接使用。如有不妥之处敬请告知。
好了,到此这篇iOS开发之1行代码实现缓存计算及清除缓存的文章就介绍到这了,更多相关iOS缓存计算及清除缓存内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。