iOS清除缓存
来源:互联网 发布:华为帐号无法获取数据 编辑:程序博客网 时间:2024/05/19 22:25
点击tableview的cell进行清除缓存
在cell设置中
在cell的右侧添加label用于显示缓存大小
NSString *cachPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0]; //调用计算缓存方法 CGFloat fileSize = [self folderSizeAtPath:cachPath]; UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 30)]; label.text = [NSString stringWithFormat:@"%.2fMB", fileSize]; label.textAlignment = 2; cell.accessoryView = label; [label release];
缓存计算方法
#pragma mark - 缓存计算- (CGFloat)folderSizeAtPath:(NSString *)folderPath{ NSFileManager *manager = [NSFileManager defaultManager]; if (![manager fileExistsAtPath:folderPath]) { return 0; } NSEnumerator *childFilesEnumerator = [[manager subpathsAtPath:folderPath] objectEnumerator]; NSString *fileName = nil; 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;}
在cell点击中
//显示显示框 UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"提示" message:@"是否清除所有缓存" preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) { NSLog(@"没有清除缓存"); }]; UIAlertAction *OKAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { NSLog(@"清除缓存"); //调用清除缓存方法 [self qingchuhuancun]; }]; [alertController addAction:cancelAction]; [alertController addAction:OKAction]; [self presentViewController:alertController animated:YES completion:nil];
- (void)qingchuhuancun{ 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]; 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{ NSLog(@"清理成功"); //刷新页面 [_tableview reloadData];}
0 0
- ios webview清除缓存。
- ios webview清除缓存
- iOS开发清除缓存
- ios webview清除缓存
- ios webview清除缓存
- ios webview清除缓存
- IOS清除缓存
- iOS清除缓存
- 清除ios的缓存
- iOS 清除缓存
- iOS 清除缓存
- iOS 清除缓存
- iOS清除缓存
- iOS清除缓存
- iOS 清除缓存
- iOS 清除缓存
- iOS ---清除缓存
- ios清除缓存2
- 交叉编译生成模块的makefile写法
- FIR.im众测平台的集成
- Redis 高性能内存存储
- onTextChanged参数解释及实现EditText字数监听
- java搜索结果 通用result类
- iOS清除缓存
- MySql与Oracle的差别
- js拖拽效果 (制作模板)
- 数据库的多表连接查询方法
- SDWebImage的使用以及内部执行流程
- html 转义
- 取字符串交集代码
- nw.js node-webkit系列(17)怎样打包和分发你的应用
- android设计模式