緩存占用了系統的大量空間,如何實時動態的顯示緩存的大小,使用戶清晰的了解緩存的積累情況,有效的進行一鍵清理呢?
為方便讀者和未來自己更好理解,我們創建這樣場景。(在表視圖的清除緩存一單元格內創建一個UILabel *cacheLabel用於顯示當前緩存,當點擊單元格彈出提示框,點擊確定,清除緩存)。
下面是實現代碼:
#pragma mark - 計算緩存大小 - (NSString *)getCacheSize { //定義變量存儲總的緩存大小 long long sumSize = 0; //01.獲取當前圖片緩存路徑 NSString *cacheFilePath = [NSHomeDirectory() stringByAppendingPathComponent:@"Library/Caches"]; //02.創建文件管理對象 NSFileManager *filemanager = [NSFileManager defaultManager]; //獲取當前緩存路徑下的所有子路徑 NSArray *subPaths = [filemanager subpathsOfDirectoryAtPath:cacheFilePath error:nil]; //遍歷所有子文件 for (NSString *subPath in subPaths) { //1).拼接完整路徑 NSString *filePath = [cacheFilePath stringByAppendingFormat:@"/%@",subPath]; //2).計算文件的大小 long long fileSize = [[filemanager attributesOfItemAtPath:filePath error:nil]fileSize]; //3).加載到文件的大小 sumSize += fileSize; } float size_m = sumSize/(1000*1000); return [NSString stringWithFormat:@"%.2fM",size_m]; } #pragma mark - 清除緩存提示(UITableViewDataSourceDelegate) - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { if (indexPath.row == 0) { UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"緩存清除" message:@"確定清除緩存?" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"確定",nil]; [alertView show]; } } #pragma mark - UIAlertViewDelegate方法實現 - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { NSLog(@"代碼執行到此"); //判斷點擊的是確認鍵 if (buttonIndex == 1) { //01...... NSFileManager *fileManager = [NSFileManager defaultManager]; //02..... NSString *cacheFilePath = [NSHomeDirectory() stringByAppendingPathComponent:@"Library/Caches"]; //03...... [fileManager removeItemAtPath:cacheFilePath error:nil]; //04刷新第一行單元格 NSIndexPath *indexPath = [NSIndexPath indexPathForItem:0 inSection:0]; [_tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade]; //05 :04和05使用其一即可 [_tableView reloadData];//刷新表視圖 } @pragma -mark -放置於.m文件首段較為合適,本DEMO僅做功能性展示,實時監測緩存大小,從其他界面跳轉到本頁面,也需要刷新下表視圖 - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:YES]; [_tableView reloadData]; }
以上所述是小編給大家介紹的iOS緩存文件大小顯示功能和一鍵清理功能的實現方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對本站網站的支持!