OC版本同步發出 請移步:DDGDataCache_OCgit
或許有這樣的需求,要求頁面在無網狀態先顯示上一次顯示的數據,這就涉及到緩存,
可是緩存又分爲文件緩存,歸檔等,realm 太過笨重,歸檔太麻煩,最後選擇了文件緩存,
看了不少博客,在參考了別人的緩存開源項目,功能太過簡單單一化,
好比:我想刪除某一個文件下的緩存信息,大部分是隻提供了刪除全部緩存,
不能夠按目錄刪除。我總結了一個庫,能夠異步按照目錄刪除。
。簡單方便,快捷神速,是居家iOS碼農必備之利器,具體功能模塊以下。github
//構建模擬數據 /** * 模擬數據請求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,同步寫入json
寫入/更新緩存(同步) [按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("😤(同步)保存/更新失敗") }
1,異步寫入緩存
寫入/更新緩存(異步) [按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.獲取緩存數據的大小app
//獲取總的緩存大小 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("😤清除緩存失敗") }
直接將DDGDataCache文件夾下的文件拖入便可
注意: 使用前請在'-Bridging-Header.h' 橋接文件中導入 #import<CommonCrypto/CommonCrypto.h> 由於要用到MD5加密的東西
DDGDataCache is available under the MIT license. See the LICENSE file for more info.
若是有問題歡迎提出,QQ:532835032 ,若是對您有幫助,但願您動動鼠標,不吝給個star.!async
鑑於還有部分童鞋還在OC上開發,本庫相同功能翻譯成OC,你們多了一個選擇,附上連接,但願能夠幫到你:DDGDataCache_OC加密