首页 > 代码库 > 封装缓存的类方法
封装缓存的类方法
// 获取磁盘大小
//获取硬盘大小+ (CGFloat)getDiskSize{ NSString *libPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) objectAtIndex:0]; NSLog(@"%@", libPath); // 初始化文件管理者 NSFileManager *manager = [NSFileManager defaultManager]; // 获取lib下所有路径 NSArray *libAllPath = [manager subpathsAtPath:libPath]; NSInteger size = 0; for (NSString *path in libAllPath) { if (![path containsString:@"Preferences"]) { //把路径拼接全 NSString *pathA = [libPath stringByAppendingPathComponent:path]; //获取文件的所有信息 NSDictionary *fileAttri = [manager attributesOfItemAtPath:pathA error:nil]; //获取文件大小 size += [fileAttri[@"NSFileSize"] integerValue]; } } return size/1024.0/1024.0;}
清除缓存的方法
//清除缓存+ (void)clearDisk{ NSString *libPath = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES)[0]; //初始化文件管理者 NSFileManager *mgr = [NSFileManager defaultManager]; //获取lib下所有路径 NSArray *libAllPath = [mgr subpathsAtPath:libPath]; for (NSString *path in libAllPath) { if (![path containsString:@"Preferences"]) { //把路径拼接全 NSString *pathA = [libPath stringByAppendingPathComponent:path]; //移除文件 [mgr removeItemAtPath:pathA error:nil]; } }}
调用时 在清除缓存的cell中显示垃圾大小
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"]; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier]; } switch (indexPath.row) { case 0: cell.textLabel.text = @"活动收藏"; break; case 1: cell.textLabel.text = @"电影收藏"; break; case 2: { cell.textLabel.text = @"清除缓存"; NSString *size = [NSString stringWithFormat:@"%.2fM",[ClearDiskManager getDiskSize]]; cell.detailTextLabel.text = size; break; } default: break; } cell.backgroundColor = [UIColor cyanColor]; return cell;}
// 点击cell时清理缓存
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ switch (indexPath.row) { case 1: { ListTableViewController *listVC = [[ListTableViewController alloc] init]; [self.navigationController pushViewController:listVC animated:YES]; break; } case 0: { ActivityTableViewController *activityVC = [[ActivityTableViewController alloc] init]; [self.navigationController pushViewController:activityVC animated:YES]; break; } case 2: { UIAlertController *alerController = [UIAlertController alertControllerWithTitle:@"提示" message:@"清除缓存之后可能耗费一点你的流量" preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction *action = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { [self dismissViewControllerAnimated:YES completion:nil]; }]; UIAlertAction *action1 = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { [ClearDiskManager clearDisk]; [self.tableView reloadData]; }]; [alerController addAction:action]; [alerController addAction:action1]; [self presentViewController:alerController animated:YES completion:nil]; } default: break; }}
封装缓存的类方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。