天天看點

iOS開發 - Swift實作清除緩存功能

前言:

開發移動應用時,請求網絡資源是再常見不過的功能。如果每次都去請求,不但浪費時間,使用者體驗也會變差,是以移動應用都會做離線緩存處理,其中已圖檔緩存最為常見。

但是時間長了,離線緩存會占用大量的手機空間,是以清除緩存功能基本是移動應用開發的标配。

實作:

本文介紹在iOS開發中,Swift實作清除緩存功能。主要分為統計緩存檔案大小和删除緩存檔案兩個步驟:

1.統計緩存檔案大小

func fileSizeOfCache()-> Int {

    // 取出cache檔案夾目錄 緩存檔案都在這個目錄下
    let cachePath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.CachesDirectory, NSSearchPathDomainMask.UserDomainMask, true).first
    //緩存目錄路徑
    print(cachePath)

    // 取出檔案夾下所有檔案數組
    let fileArr = NSFileManager.defaultManager().subpathsAtPath(cachePath!)

    //快速枚舉出所有檔案名 計算檔案大小
    var size = 
    for 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 /  / 

    return mm
}
           

2.删除緩存檔案

func clearCache() {

    // 取出cache檔案夾目錄 緩存檔案都在這個目錄下
    let cachePath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.CachesDirectory, NSSearchPathDomainMask.UserDomainMask, true).first

    // 取出檔案夾下所有檔案數組
    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.效果圖

iOS開發 - Swift實作清除緩存功能

本文首發于馬燕龍個人部落格,歡迎分享,轉載請标明出處。

馬燕龍個人部落格:http://www.mayanlong.com

馬燕龍個人微網誌:http://weibo.com/imayanlong 

馬燕龍Github首頁:https://github.com/yanlongma

轉載于:https://www.cnblogs.com/imayanlong/p/5617625.html