第一:首先在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];
}
}