緩存占用了系統的大量空間,如何實時動態的顯示緩存的大小,使用戶清晰的了解緩存的積累情況,有效的進行一鍵清理呢?
為方便讀者和未來自己更好理解,我們創建這樣場景。(在表視圖的清除緩存一單元格內創建一個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緩存文件大小顯示功能和一鍵清理功能的實現方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!
新聞熱點
疑難解答