iOS开发 - Swift实现清除缓存功能
生活随笔
收集整理的這篇文章主要介紹了
iOS开发 - Swift实现清除缓存功能
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
前言:
開發(fā)移動(dòng)應(yīng)用時(shí),請(qǐng)求網(wǎng)絡(luò)資源是再常見不過的功能。如果每次都去請(qǐng)求,不但浪費(fèi)時(shí)間,用戶體驗(yàn)也會(huì)變差,所以移動(dòng)應(yīng)用都會(huì)做離線緩存處理,其中已圖片緩存最為常見。
但是時(shí)間長(zhǎng)了,離線緩存會(huì)占用大量的手機(jī)空間,所以清除緩存功能基本是移動(dòng)應(yīng)用開發(fā)的標(biāo)配。
實(shí)現(xiàn):
本文介紹在iOS開發(fā)中,Swift實(shí)現(xiàn)清除緩存功能。主要分為統(tǒng)計(jì)緩存文件大小和刪除緩存文件兩個(gè)步驟:
1.統(tǒng)計(jì)緩存文件大小
func fileSizeOfCache()-> Int {// 取出cache文件夾目錄 緩存文件都在這個(gè)目錄下let cachePath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.CachesDirectory, NSSearchPathDomainMask.UserDomainMask, true).first//緩存目錄路徑print(cachePath)// 取出文件夾下所有文件數(shù)組let fileArr = NSFileManager.defaultManager().subpathsAtPath(cachePath!)//快速枚舉出所有文件名 計(jì)算文件大小var size = 0for file in fileArr! {// 把文件名拼接到路徑中let path = cachePath?.stringByAppendingString("/\(file)")// 取出文件屬性let floder = try! NSFileManager.defaultManager().attributesOfItemAtPath(path!)// 用元組取出文件大小屬性for (abc, bcd) in floder {// 累加文件大小if abc == NSFileSize {size += bcd.integerValue}}}let mm = size / 1024 / 1024return mm }2.刪除緩存文件
func clearCache() {// 取出cache文件夾目錄 緩存文件都在這個(gè)目錄下let cachePath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.CachesDirectory, NSSearchPathDomainMask.UserDomainMask, true).first// 取出文件夾下所有文件數(shù)組let fileArr = NSFileManager.defaultManager().subpathsAtPath(cachePath!)// 遍歷刪除for file in fileArr! {let path = cachePath?.stringByAppendingString("/\(file)")if NSFileManager.defaultManager().fileExistsAtPath(path!) {do {try NSFileManager.defaultManager().removeItemAtPath(path!)} catch {}}} }3.效果圖
本文首發(fā)于馬燕龍個(gè)人博客,歡迎分享,轉(zhuǎn)載請(qǐng)標(biāo)明出處。
馬燕龍個(gè)人博客:http://www.mayanlong.com
馬燕龍個(gè)人微博:http://weibo.com/imayanlong?
馬燕龍Github主頁:https://github.com/yanlongma
?
轉(zhuǎn)載于:https://www.cnblogs.com/imayanlong/p/5617625.html
總結(jié)
以上是生活随笔為你收集整理的iOS开发 - Swift实现清除缓存功能的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AMD平台首发OS Turbo!全新荣耀
- 下一篇: 信用卡逾期会影响信用卡提额吗?有哪些方法