第一:首先在AppDelegate添加两个方法
- (int)cacheSize;
-(void)clearCache;
#pragma makr -cacheSize
- (int)cacheSize { int imageChaheSize = [[SDImageCache sharedImageCache] getSize] + [[SDImageCache sharedImageCache] getMemorySize]; int dataSize = 0; NSString* docPath = [NSHomeDirectory() stringByAppendingPathComponent: @"Documents"]; NSDirectoryEnumerator *fileEnumerator = [[NSFileManager defaultManager] enumeratorAtPath:docPath]; for (NSString *fileName in fileEnumerator) { NSString *filePath = [docPath stringByAppendingPathComponent:fileName]; NSDictionary *attrs = [[NSFileManager defaultManager] attributesOfItemAtPath:filePath error:nil]; dataSize += [attrs fileSize]; } return imageChaheSize + dataSize;}-(void)clearCache { [[SDImageCache sharedImageCache] clearMemory]; [[SDImageCache sharedImageCache] clearDisk]; NSString* docPath = [NSHomeDirectory() stringByAppendingPathComponent: @"Documents"]; NSDirectoryEnumerator *fileEnumerator = [[NSFileManager defaultManager] enumeratorAtPath:docPath]; for (NSString *fileName in fileEnumerator) { NSString *filePath = [docPath stringByAppendingPathComponent:fileName]; [[NSFileManager defaultManager] removeItemAtPath:filePath error:nil]; } }第二:在要用到的地方调用
一般是在表格中使用
在cell中添加此代码
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
cell.textLabel.text = @"清理缓存";
UILabel *accessory = [[UILabel alloc] init]; accessory.backgroundColor = [UIColor clearColor]; accessory.textAlignment = UITextAlignmentCenter; accessoryView.text = [NSString stringWithFormat:@"%.1fMB", [AppDelegate appDelegate].cacheSize/1024.0/1024.0]; cell.accessoryView = accessory;}
最后一步,点击清理缓存
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if ([AppDelegate appDelegate].cacheSize > 0) {
[[AppDelegate appDelegate] clearCache];UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"清理缓存" message:@"清理成功!" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show]; [_tableView reloadData];//刷新表格 } else { UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"清理缓存" message:@"没有缓存" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; [alert show]; }}