iOS開發-清理快取功能的實現
移動應用在處理網路資源時,一般都會做離線快取處理,其中以圖片快取最為典型。
今天介紹的離線快取功能的實現,主要分為快取檔案大小的獲取、刪除快取檔案的實現。
路徑巨集#define LHCCachesPath [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject]
計算檔案大小-(float)fileSizeAtPath:(NSString*)path{
NSFileManager*fileManager=[NSFileManagerdefaultManager];
if([fileManagerfileExistsAtPath:path]){
longlongsize=[fileManagerattributesOfItemAtPath:patherror:nil].fileSize;
returnsize/1024.0/1024.0;
}
return0;
}
計算目錄大小
- (CGFloat)floatWithPath:(NSString*)path{
NSFileManager*fileManager=[NSFileManagerdefaultManager];
floatfolderSize;
if([fileManagerfileExistsAtPath:path]) {
NSArray*childerFiles = [fileManagersubpathsAtPath:path];
for(NSString*fileNameinchilderFiles) {
NSString*fullPath = [pathstringByAppendingPathComponent:fileName];
folderSize += [selffileSizeAtPath:fullPath];
}
}
returnfolderSize;
}
計算好檔案目錄大小之後賦值給self.garbage
- (void)getFolderSizeBk
{
floatfolderSize = [self floatWithPath:LHCCachesPath];
self.garbage= [NSStringstringWithFormat:@"%.2fM",folderSize];
[self.tableViewreloadData];
}
清除快取大小,這個是我的寫的alert的點選事件
- (void)alertView:(UIAlertView*)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if(buttonIndex) {
NSString*path =LHCCachesPath;
NSFileManager*fileManager=[NSFileManagerdefaultManager];
if([fileManagerfileExistsAtPath:path]) {
NSArray*childerFiles=[fileManagersubpathsAtPath:path];
for(NSString*fileNameinchilderFiles) {
NSString*absolutePath=[pathstringByAppendingPathComponent:fileName];
[fileManagerremoveItemAtPath:absolutePatherror:nil];
}
}
[selfgetFolderSizeBk];
}
}
以上就是計算快取和清除快取的程式碼了,附上幾張圖
相關文章
- iOS快取清理功能的實現iOS快取
- ios開發實現畫板功能iOS
- Android 清除快取功能實現Android快取
- 實現vue 的keep-alive快取功能VueKeep-Alive快取
- iOS 除SDWebImage之外清理記憶體中快取iOSWeb記憶體快取
- 清理 Conda 快取和 Pip 快取快取
- 如何定期清理DNS快取?清理DNS快取有什麼用?DNS快取
- pbootcms模板自動清理runtime快取,自動清理快取boot快取
- 網頁快取清理網頁快取
- linux清理快取Linux快取
- docker清理快取命令Docker快取
- 清理C盤快取,清理電腦C盤快取垃圾的操作步驟快取
- localstorage實現帶過期時間的快取功能快取
- iOS開發之記憶體與快取iOS記憶體快取
- win10如何清理flash快取_win10清理fiash player快取的方法Win10快取
- linux docker 清理快取LinuxDocker快取
- 清理電腦快取垃圾快取
- windwos清理圖示快取快取
- Win10如何清理照片快取 win10系統清理照片快取的步驟Win10快取
- Win10系統實現自動清理垃圾檔案磁碟快取的方法Win10快取
- 資料快取的實現快取
- Privatus for Mac網頁快取清理Mac網頁快取
- Laravel 路由快取檔案清理Laravel路由快取
- 如何清理MAC電腦的DNS快取MacDNS快取
- Win10怎麼清理DNS快取 Win10電腦dns快取清理命令Win10DNS快取
- PbootCMS快取如何清理runtime資料夾下經常滿怎麼辦?清理快取的方法boot快取
- iOS開發專案實戰——Swift實現ScrollView滾動條功能iOSSwiftView
- 基於Java+SpringBoot+Mysql實現的快遞櫃寄取快遞系統功能實現三JavaSpring BootMySql
- 基於Java+SpringBoot+Mysql實現的快遞櫃寄取快遞系統功能實現四JavaSpring BootMySql
- 基於Java+SpringBoot+Mysql實現的快遞櫃寄取快遞系統功能實現八JavaSpring BootMySql
- 基於Java+SpringBoot+Mysql實現的快遞櫃寄取快遞系統功能實現十JavaSpring BootMySql
- SDWebImage實現圖片展示、快取、清除快取Web快取
- Win10系統如何清理應用商店快取_win10清理應用商店快取的方法Win10快取
- iOS開發-探索scrollView的實現iOSView
- 伺服器快取怎麼清理伺服器快取
- Python中pycharm如何清理快取?PythonPyCharm快取
- 使用RxJava實現快取RxJava快取
- LRU快取實現(Java)快取Java