Swift 文件緩存--DDGDataCache_Swift庫高級封裝用法

寫在前面

或許有這樣的需求,要求頁面在無網狀態先顯示上一次顯示的數據,這就涉及到緩存,可是緩存又分爲文件緩存,歸檔等,realm 太過笨重,歸檔太麻煩,最後選擇了文件緩存,
看了不少博客,在參考了別人的緩存開源項目,
功能太過簡單單一化,好比:我想刪除某一個文件下的緩存信息,大部分是隻提供了刪除全部緩存
,不能夠按目錄刪除。我總結了一個庫,能夠異步按照目錄刪除
。簡單方便,快捷神速,是居家iOS碼農必備之利器,具體功能模塊以下。
複製代碼

image

具體用法

現已經將此代碼上傳到github上,有具體須要的能夠移步github,下載完整代碼。
複製代碼

移步:DDGDataCache_Swiftgit

//構建模擬數據
    /**
     *  模擬數據請求URL
     */
    let URLString = "https://github.com/dudongge"
    let URLString1 = "https://github.com/dudongge/DDGScreenShot"
    let URLString2 = "https://github.com/dudongge/DDGMeiTuan"
    let URLString3 = "https://github.com/dudongge/DGKVO"
    
    /**
     *  模擬服務器請求數據
     */
    let responseObject = [ "sex" : "男",
                           "city" : "上海",
                           "logintime" : "1445267749",
                           "name" : "東閣堂主",
                           "group" : "3",
                           "loginhit" : "4",
                           "id" : "234328",
                           "QQ" : "532835032" ]
    
1,//同步寫入(只有主目錄) 
/**
     寫入/更新緩存(同步) [按APP版本號緩存,不一樣版本APP,同一接口緩存數據互不干擾]
     - parameter jsonResponse: 要寫入的數據(JSON)
     - parameter URL:          數據請求URL
     - parameter path:         一級文件夾路徑path(必須設置)
     - parameter subPath:      二級文件夾路徑subPath(可設置-可不設置)
     - returns: 是否寫入成功
     */
    if DDGDataCache.saveJsonResponseToCacheFile(self.responseObject as AnyObject,
                                                        URL: self.URLString,
                                                        path: "appCache") {
                print("😆(同步)保存/更新成功")
        } else {
                print("😤(同步)保存/更新失敗")
        }
 /**
     寫入/更新緩存(異步) [按APP版本號緩存,不一樣版本APP,同一接口緩存數據互不干擾]
     - parameter jsonResponse: 要寫入的數據(JSON)
     - parameter URL:          數據請求URL
     - parameter subPath:      二級文件夾路徑subPath(可設置-可不設置)
     - parameter completed:    異步完成回調(主線程回調)
     */
     DDGDataCache.save_asyncJsonResponseToCacheFile(self.responseObject as AnyObject,
                                                           URL: self.URLString3,
                                                           path: "appCache",
                                                           subPath: "userInfo") { (succ) in
             if  succ {
                print("😆(異步)保存/更新成功")
                 } else {
                print("😤(異步)保存/更新失敗")
             }
    }
複製代碼
2.獲取已經緩存的數據
 /**
     獲取緩存的對象(同步)
     - parameter URL: 數據請求URL
     - parameter subPath:      二級文件夾路徑subPath(可設置-可不設置)
     - returns: 緩存對象
     */
     if let json = DDGDataCache.cacheJsonWithURL(URLString)  {
            print(json)
      }
      //獲取指定緩存數據
      if let json = DDGDataCache.cacheJsonWithURL(URLString,subPath: "userInfo")  {
           print(json)
     }
複製代碼
3.獲取緩存數據的大小
   //獲取總的緩存大小
   let allSize =  DDGDataCache.cacheAllSize()
   let size =  String(format: "%.6f", allSize)
   print("緩存大小(M)=\(size)")
   //獲取制定路徑的緩存大小(傳入二級路徑)
    let allSize =  DDGDataCache.cacheSizeWithUrl("userInfo")
    print("緩存大小(M)=\(allSize)")
複製代碼
4,刪除緩存
    //清除所有緩存
    if DDGDataCache.clearAllCache() {
            print("😆清除緩存成功")
        } else {
            print("😤清除緩存失敗")
    }
    //清除指定緩存
    if DDGDataCache.clearCacheWithUrl("userInfo") {
            print("😆清除緩存成功")
        } else {
             print("😤清除緩存失敗")
    }
複製代碼
相關文章
相關標籤/搜索