iOS緩存文件大小顯示功能和一鍵清理功能的實(shí)現(xiàn)方法
緩存占用了系統(tǒng)的大量空間,如何實(shí)時(shí)動(dòng)態(tài)的顯示緩存的大小,使用戶清晰的了解緩存的積累情況,有效的進(jìn)行一鍵清理呢?
為方便讀者和未來(lái)自己更好理解,我們創(chuàng)建這樣場(chǎng)景。(在表視圖的清除緩存一單元格內(nèi)創(chuàng)建一個(gè)UILabel *cacheLabel用于顯示當(dāng)前緩存,當(dāng)點(diǎn)擊單元格彈出提示框,點(diǎn)擊確定,清除緩存)。
下面是實(shí)現(xiàn)代碼:
#pragma mark - 計(jì)算緩存大小 - (NSString *)getCacheSize { //定義變量存儲(chǔ)總的緩存大小 long long sumSize = 0; //01.獲取當(dāng)前圖片緩存路徑 NSString *cacheFilePath = [NSHomeDirectory() stringByAppendingPathComponent:@"Library/Caches"]; //02.創(chuàng)建文件管理對(duì)象 NSFileManager *filemanager = [NSFileManager defaultManager]; //獲取當(dāng)前緩存路徑下的所有子路徑 NSArray *subPaths = [filemanager subpathsOfDirectoryAtPath:cacheFilePath error:nil]; //遍歷所有子文件 for (NSString *subPath in subPaths) { //1).拼接完整路徑 NSString *filePath = [cacheFilePath stringByAppendingFormat:@"/%@",subPath]; //2).計(jì)算文件的大小 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方法實(shí)現(xiàn) - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { NSLog(@"代碼執(zhí)行到此"); //判斷點(diǎn)擊的是確認(rèn)鍵 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僅做功能性展示,實(shí)時(shí)監(jiān)測(cè)緩存大小,從其他界面跳轉(zhuǎn)到本頁(yè)面,也需要刷新下表視圖 - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:YES]; [_tableView reloadData]; }
以上所述是小編給大家介紹的iOS緩存文件大小顯示功能和一鍵清理功能的實(shí)現(xiàn)方法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
C++ 中exit(),_exit(),return,abort()函數(shù)的區(qū)別
這篇文章主要介紹了C++ 中exit(),_exit(),return,abort()函數(shù)的區(qū)別的相關(guān)資料,需要的朋友可以參考下2016-12-12IOS 開發(fā)之PickerView文字和隨機(jī)數(shù)的使用
這篇文章主要介紹了IOS 開發(fā)之PickerView文字和隨機(jī)數(shù)的使用的相關(guān)資料,這里提供實(shí)例幫助大家理解掌握這部分內(nèi)容,需要的朋友可以參考下2017-08-08iOS創(chuàng)建對(duì)象的不同姿勢(shì)詳解
這篇文章主要介紹了iOS創(chuàng)建對(duì)象的不同姿勢(shì),文中介紹的很詳細(xì),對(duì)大家具有一定的參考價(jià)值,有需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-02-02iOS開發(fā)中常見的項(xiàng)目文件與MVC結(jié)構(gòu)優(yōu)化思路解析
這篇文章主要介紹了iOS開發(fā)中常見的項(xiàng)目文件與MVC結(jié)構(gòu)優(yōu)化思路解析,示例代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下2015-12-12