iOS文件的高級緩存-- DDGDataCache_OC 緩存庫的高級用法

iOS文件的高級緩存DDGDataCache_OC庫的用法

DDGDataCache

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

image

//構建模擬數據
/**
*  模擬數據請求URL
*/
let URL = "https://github.com/dudongge"

/**
*  模擬服務器請求數據
*/
id responseObject = [ "sex" : "男",
"city" : "上海",
"logintime" : "1445267749",
"name" : "東閣堂主",
"group" : "3",
"loginhit" : "4",
"id" : "234328",
"QQ" : "532835032" ]
複製代碼

1,同步寫入github

寫入/更新緩存(同步) [按APP版本號緩存,不一樣版本APP,同一接口緩存數據互不干擾]
    - parameter jsonResponse: 要寫入的數據(JSON)
    - parameter URL:          數據請求URL
    - parameter path:         一級文件夾路徑path(必須設置)
    - parameter subPath:      二級文件夾路徑subPath(可設置-可不設置)
    - returns: 是否寫入成功
    BOOL result = [DDGDataCache saveJsonResponseToCacheFile:self.responseObject andURL:self.URL                     path:@"appCahe" andSubPath:@""];
    if (result) {
        NSString *logStr = @"😆同步寫入主目錄)保存/更新成功";
    } else {
        NSString *logStr = @"😤(同步寫入主目錄)保存/更新失敗";
    }
複製代碼

1,異步寫入json

寫入/更新緩存(異步) [按APP版本號緩存,不一樣版本APP,同一接口緩存數據互不干擾]
    - parameter jsonResponse: 要寫入的數據(JSON)
    - parameter URL:          數據請求URL
    - parameter subPath:      二級文件夾路徑subPath(可設置-可不設置)
    - parameter completed:    異步完成回調(主線程回調)

    [DDGDataCache save_asyncJsonResponseToCacheFile:self.responseObject     andURL:self.URL path:@"appCahe" andSubPath:@"MaName" completed:^(BOOL   result) {
        if (result) {
            NSString *logStr = @"📷同步寫入/更新緩存成功(有二級目錄)";
        } else {
            NSString *logStr = @"😤(同步寫入/更新緩存(有二級目錄)保存/更新失敗";
        }
    }];
複製代碼

2.獲取已經緩存的數據緩存

獲取緩存的對象(同步)
    - parameter URL: 數據請求URL
    - parameter subPath:      二級文件夾路徑subPath(可設置-可不設置)
    - returns: 緩存對象

    id json = [DDGDataCache cacheJsonWithURL:self.URL subPath:@""];
    NSString *jsonStr = [NSString stringWithFormat:@"%@",json];
    [self updadateLog: jsonStr];
    //獲取指定緩存數據
    id json = [DDGDataCache cacheJsonWithURL:self.URL subPath:@"MaName"];
    NSString *jsonStr = [NSString stringWithFormat:@"%@",json];

複製代碼

3.獲取緩存數據的大小bash

//獲取總的緩存大小
    float size = [DDGDataCache cacheAllSize];
    [self updadateLog: [NSString stringWithFormat:@"所有緩存大小:%fM",size]];
    print("緩存大小(M)=\(size)")
    //獲取制定路徑的緩存大小(傳入二級路徑)
    float size = [DDGDataCache cacheSizeWithSubPath:@"MaName"];
    [self updadateLog: [NSString stringWithFormat:@"所有緩存大小: %fM",size]];
    print("緩存大小(M)=\(allSize)")
複製代碼

4,刪除緩存服務器

//清除所有緩存
    BOOL result = [DDGDataCache clearAllCache];
    if(result) {
        print("😆清除緩存成功")
    } else {
        print("😤清除緩存失敗")
    }
//清除指定緩存
    BOOL result = [DDGDataCache clearCacheWithSubPath:@"userInfo"];
    if (result) {
        print("😆清除緩存成功")
    } else {
        print("😤清除緩存失敗")
    }
複製代碼

直接把代碼拖入

直接將DDGDataCache文件夾下的文件拖入便可

複製代碼

License

DDGDataCache is available under the MIT license. See the LICENSE file for more info. 若是有問題歡迎提出,QQ:532835032 ,若是對您有幫助,但願您動動鼠標,不吝給個star.!app

instructions (備註)

鑑於還有部分童鞋已經異步Swift上開發,本庫相同功能翻譯成Swift,你們多了一個選擇,附上連接,但願能夠幫到你:DDGDataCache_Swift異步

相關文章
相關標籤/搜索