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快取
- 網頁快取清理網頁快取
- localstorage實現帶過期時間的快取功能快取
- iOS開發之記憶體與快取iOS記憶體快取
- win10如何清理flash快取_win10清理fiash player快取的方法Win10快取
- linux docker 清理快取LinuxDocker快取
- Win10如何清理照片快取 win10系統清理照片快取的步驟Win10快取
- Win10系統實現自動清理垃圾檔案磁碟快取的方法Win10快取
- Privatus for Mac網頁快取清理Mac網頁快取
- Laravel 路由快取檔案清理Laravel路由快取
- 資料快取的實現快取
- 如何清理MAC電腦的DNS快取MacDNS快取
- Win10怎麼清理DNS快取 Win10電腦dns快取清理命令Win10DNS快取
- SDWebImage實現圖片展示、快取、清除快取Web快取
- iOS開發專案實戰——Swift實現ScrollView滾動條功能iOSSwiftView
- Win10系統如何清理應用商店快取_win10清理應用商店快取的方法Win10快取
- 伺服器快取怎麼清理伺服器快取
- Python中pycharm如何清理快取?PythonPyCharm快取
- 使用RxJava實現快取RxJava快取
- LRU快取實現(Java)快取Java
- iOS開發-探索scrollView的實現iOSView
- iOS快取的總結iOS快取
- win10怎麼清理網路快取_win10電腦怎麼清理dns快取Win10快取DNS
- 兩級快取實現分析之快取設定快取
- win10qq快取清理不乾淨怎麼辦|win10qq快取徹底清理的方法Win10快取
- iOS開發筆記-33: 一般app中使用的快取清除iOS筆記APP快取
- Jtti:Centos清理快取的方法是什麼JttiCentOS快取
- myeclipse 清理專案快取的幾大步驟Eclipse快取
- 伺服器DNS快取怎麼清理伺服器DNS快取
- win7如何清理圖示快取Win7快取
- OS X Yosemite下Dns快取清理方法MITDNS快取
- SpringBoot快取管理(二) 整合Redis快取實現Spring Boot快取Redis