今天给大家介绍一种简单的清除缓存的方法, 大家看过之后一定会理解这种简单的清除缓存的方法
在做项目的时候, 清除缓存是一个很常用的且很有必要的东西, 之前我也从网上找了一种方法清除缓存, 但是比较麻烦, 而且不容易理解, 后来就发现了这个简单的方法, 下面就把这个方法分享给大家, 希望可以帮到大家.
首先大家可以建一个按钮或者在一个tableView的cell, 点击关联到一个方法
NSUInteger size = [[SDImageCache sharedImageCache] getSize];//图片缓存的大小 NSString *sizeString = [NSString stringWithFormat:@”是否清除%.1fM缓存”, size / 1024 / 1024.]; //做一个判断, 缓存为0时, 提示缓存已清空 if size == 0) { UIAlertView *name = [[UIAlertView alloc] initWithTitle:@”亲” message:@”缓存已清空了哦��” delegate:nil cancelButtonTitle:nil otherButtonTitles:nil, nil]; [name show]; [name release]; //延迟1.5秒, 提示框消失 dispatch_afterdispatch_timeDISPATCH_TIME_NOW, int64_t)1.5 * NSEC_PER_SEC)), dispatch_get_main_queue), ^{ [name dismissWithClickedButtonIndex:0 animated:YES]; }); } else{ //提示是否要清除缓存 UIAlertView *ask = [[UIAlertView alloc] initWithTitle:@”提示” message:sizeString delegate:self cancelButtonTitle:@”确定” otherButtonTitles:@”取消”, nil]; [ask show]; [ask release]; }
点击提示框 确定 按钮, 执行代理方法, 进行缓存清理操作
#pragma 想人陪的大碗 – UIAlertViewDelegate //提示框的代理方法- void)alertView:UIAlertView *)alertView clickedButtonAtIndex:NSInteger)buttonIndex{ if buttonIndex == 0) { //清除缓存 [[SDImageCache sharedImageCache] clearDisk]; [[SDImageCache sharedImageCache] clearMemory]; //提示框提示缓存已清空 UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@”提示” message:@”已清除全部缓存” delegate:nil cancelButtonTitle:nil otherButtonTitles:nil]; [alertView show]; [alertView release]; //提示框在1秒后, 自动消除 dispatch_afterdispatch_timeDISPATCH_TIME_NOW, int64_t)1 * NSEC_PER_SEC)), dispatch_get_main_queue), ^{ [alertView dismissWithClickedButtonIndex:0 animated:YES]; }); }}
//清除缓存
**[[SDImageCache sharedImageCache] clearDisk];
[[SDImageCache sharedImageCache] clearMemory];**
这两句话是清除缓存的核心语句, 请大家一定要记好哦!
注: 该方法有一定的局限性, 首先只能清除图片的缓存, 其他的如视频, 音乐等的缓存, 好像是不能清理的, 其次, 该方法清除的照片缓存必须是一个第三方SDWebImage加载的图片, 所以大家可以根据自己的实际情况来谨慎使用, 希望可以帮到您!