内存管理_清除缓存
来源:互联网 发布:rt809h编程器 编辑:程序博客网 时间:2024/05/18 06:25
float clearCacheName; //用来展示缓存大小的字符串
- (void)viewDidLoad{
[self getCasheSize];
[self initContentView];
}
//获取缓存大小
- (void)getCasheSize
{
//缓存
NSString *cachPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0];
clearCacheName= [self folderSizeAtPath:cachPath];
}
//遍历文件夹获得文件夹大小,返回多少M
- (float ) folderSizeAtPath:(NSString*) folderPath{
NSFileManager* manager = [NSFileManager defaultManager];
if (![manager fileExistsAtPath:folderPath])
return 0;
NSEnumerator *childFilesEnumerator = [[manager subpathsAtPath:folderPath] objectEnumerator];
NSString* fileName;
long long folderSize = 0;
while ((fileName = [childFilesEnumerator nextObject]) != nil){
NSString* fileAbsolutePath = [folderPath stringByAppendingPathComponent:fileName];
folderSize += [self fileSizeAtPath:fileAbsolutePath];
}
return folderSize/(1024.0*1024.0);
}
//单个文件的大小
- (long long) fileSizeAtPath:(NSString*) filePath{
NSFileManager* manager = [NSFileManager defaultManager];
if ([manager fileExistsAtPath:filePath]){
return [[manager attributesOfItemAtPath:filePath error:nil] fileSize];
}
return 0;
}
alertView-delegate
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 1 && alertView.tag == 1011) {
[self clearTmpPics];
}
}
//清除缓存
- (void)clearTmpPics
{
dispatch_async(
dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)
, ^{
NSString *cachPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSArray *files = [[NSFileManager defaultManager] subpathsAtPath:cachPath];
//NSLog(@"files :%ld",[files count]);
for (NSString *p in files) {
NSError *error;
NSString *path = [cachPath stringByAppendingPathComponent:p];
if ([[NSFileManager defaultManager] fileExistsAtPath:path]) {
[[NSFileManager defaultManager] removeItemAtPath:path error:&error];
}
}
[self performSelectorOnMainThread:@selector(clearCacheSuccess) withObject:nil waitUntilDone:YES];});
}
-(void)clearCacheSuccess
{
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"提示"
message:@"缓存清理成功!"
delegate:nil
cancelButtonTitle:@"确定"
otherButtonTitles:nil, nil];
[alertView show];
[self getCasheSize];
[self initContentView];
[myTableView reloadData];
}
- 内存管理_清除缓存
- linux清除内存缓存方法
- 利用SDWebImage清除内存缓存
- 内存_内存管理
- Glide 缓存工具例子,缓存大小获取,磁盘缓存清除(2 种方法),内存缓存清除
- SDWebImage框架清除内存中的缓存图片
- centos 6.8 清除内存中的系统缓存
- 黑马程序员_内存管理
- 黑马程序员_内存管理
- LDD读书笔记_内存管理
- OC08,09_内存管理
- 内存管理_零碎记录
- 指针_引用_内存管理new_delete
- 清除缓存
- 清除缓存
- 清除缓存,
- 清除缓存!
- 清除缓存
- 将OpenStack私有云部署到Hadoop MapReduce环境中
- 物聯網系統開發工具
- Xcode 删除没用的描述文件
- 详解https是如何确保安全的?
- 服务区监控高负载异常进程到一个日志的简单shell
- 内存管理_清除缓存
- android使用Fragment实现底部菜单使用show()和hide()来切换以保持Fragment状态
- 队列
- 欧几里德与拓展欧几里德算法
- iOS 时间戳转换为时间、NSDate转NSString、NSString转NSDate
- 如何js将数组转化为json数组,然后后台如何解析?
- 51Nod-1046-A^B Mod C
- javascript 开发多种类型的应用(Electron 跨平台开发)
- Leetcode - Climbing Stairs