緩存-YYCache

參考文檔

NSCache

NSCache 與 NSMutableDictionary 用法相似仇参,但是線程安全的,不需要加鎖卓箫,在系統(tǒng)內(nèi)存很低時(shí)迷雪,會(huì)自動(dòng)釋放一些對(duì)象限书,多用于get 請(qǐng)求。

-(NSCache*)myCache{
    if (!_myCache) {
        
        _myCache = [[NSCache alloc]init];
        _myCache.countLimit = 30; //設(shè)置了最大存儲(chǔ)對(duì)象最大數(shù)量
        _myCache.delegate = self; //設(shè)置代理
    }
    return _myCache;
}
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
    
    
    for (int i = 0; i < 50; i++) {
        NSString *str = [NSString stringWithFormat:@"測(cè)試%d",i];
        [self.myCache setObject:str forKey:@(i)];
    }
    for (int i = 0; i < 50; i++) {
        NSLog(@"%d-%@",i,[self.myCache objectForKey:@(i)]);
    }
}
//代理方法緩存過(guò)限時(shí)自動(dòng)清理之前的數(shù)據(jù)
//一般用于程序測(cè)試
- (void)cache:(NSCache*)cache willEvictObject:(nonnull id)obj {
    NSLog(@"刪除-%@",obj);
}

YYCache

  • YYCache 主要由YYCache振乏、YYDiskCache和YYMemoryCache組成
    在不指定存儲(chǔ)方式下蔗包,先從內(nèi)存中讀取秉扑,沒(méi)有則從磁盤讀取慧邮,有就用,并寫入內(nèi)存舟陆,沒(méi)有則返回空误澳。
//設(shè)置YYCache屬性,類似于創(chuàng)建數(shù)據(jù)表,name即表名
 YYCache *cache = [[YYCache alloc] initWithName:@"SPHttpCache"];
 cache.memoryCache.shouldRemoveAllObjectsOnMemoryWarning = YES;
 cache.memoryCache.shouldRemoveAllObjectsWhenEnteringBackground = YES;
    
 id cacheData;
 if (isCache) {//如果需要緩存
    
    //根據(jù)網(wǎng)址從Cache中取數(shù)據(jù)
     cacheData = [cache objectForKey:cacheKey];//key為緩存的key

        if (cacheData != 0) {//如果有緩存數(shù)據(jù)
            //將數(shù)據(jù)統(tǒng)一處理緩存數(shù)據(jù)秦躯,并有有網(wǎng)的情況下對(duì)緩存數(shù)據(jù)進(jìn)行對(duì)比
            [self returnDataWithRequestData:cacheData Success:^(NSDictionary *requestDic, NSString *msg) {
                MCLog(@"緩存數(shù)據(jù)\n\n    %@    \n\n",requestDic);
                success(requestDic,msg);
            } failure:^(NSString *errorInfo) {
                failure(errorInfo);
            }];
        }
    }
    
    //進(jìn)行網(wǎng)絡(luò)檢查
    if (![self requestBeforeJudgeConnect]) {
        failure(@"沒(méi)有網(wǎng)絡(luò)");
        MCLog(@"\n\n----%@------\n\n",@"沒(méi)有網(wǎng)絡(luò)");
        return;
    }
    //如果有網(wǎng)絡(luò)忆谓,則進(jìn)行網(wǎng)絡(luò)請(qǐng)求
     。踱承。倡缠。哨免。。

網(wǎng)絡(luò)數(shù)據(jù)請(qǐng)求回來(lái)后昙沦,作比對(duì)處理

//緩存數(shù)據(jù)與請(qǐng)求回的數(shù)據(jù)不一致琢唾,則更新數(shù)據(jù) 
if (![cacheData isEqual:requestData]) {
    id myResult = [NSJSONSerialization JSONObjectWithData:requestData options:NSJSONReadingMutableContainers error:nil];
    
    
    //判斷是否為字典
    if ([myResult isKindOfClass:[NSDictionary  class]]) {
        NSDictionary *  requestDic = (NSDictionary *)myResult;
     
     //根據(jù)返回的接口內(nèi)容來(lái)變
        NSString * succ = requestDic[@"status"];
        if ([succ isEqualToString:@"success"]) {
            success(requestDic[@"result"],requestDic[@"msg"]);
        }else{
            failure(requestDic[@"msg"]);
        }
        
    }
}
      

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末盾饮,一起剝皮案震驚了整個(gè)濱河市采桃,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌丘损,老刑警劉巖普办,帶你破解...
    沈念sama閱讀 222,865評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異徘钥,居然都是意外死亡衔蹲,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門呈础,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)踪危,“玉大人,你說(shuō)我怎么就攤上這事猪落≌暝叮” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 169,631評(píng)論 0 364
  • 文/不壞的土叔 我叫張陵笨忌,是天一觀的道長(zhǎng)蓝仲。 經(jīng)常有香客問(wèn)我,道長(zhǎng)官疲,這世上最難降的妖魔是什么袱结? 我笑而不...
    開(kāi)封第一講書人閱讀 60,199評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮途凫,結(jié)果婚禮上垢夹,老公的妹妹穿的比我還像新娘。我一直安慰自己维费,他們只是感情好果元,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,196評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著犀盟,像睡著了一般而晒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上阅畴,一...
    開(kāi)封第一講書人閱讀 52,793評(píng)論 1 314
  • 那天倡怎,我揣著相機(jī)與錄音,去河邊找鬼。 笑死监署,一個(gè)胖子當(dāng)著我的面吹牛颤专,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播钠乏,決...
    沈念sama閱讀 41,221評(píng)論 3 423
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼血公,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了缓熟?” 一聲冷哼從身側(cè)響起累魔,我...
    開(kāi)封第一講書人閱讀 40,174評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎够滑,沒(méi)想到半個(gè)月后垦写,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,699評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡彰触,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,770評(píng)論 3 343
  • 正文 我和宋清朗相戀三年梯投,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片况毅。...
    茶點(diǎn)故事閱讀 40,918評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡分蓖,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出尔许,到底是詐尸還是另有隱情么鹤,我是刑警寧澤,帶...
    沈念sama閱讀 36,573評(píng)論 5 351
  • 正文 年R本政府宣布味廊,位于F島的核電站蒸甜,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏余佛。R本人自食惡果不足惜柠新,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,255評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望辉巡。 院中可真熱鬧恨憎,春花似錦、人聲如沸郊楣。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,749評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)痢甘。三九已至喇嘱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間塞栅,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,862評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留放椰,地道東北人作烟。 一個(gè)月前我還...
    沈念sama閱讀 49,364評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像砾医,于是被迫代替她去往敵國(guó)和親拿撩。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,926評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 你要知道的NSCache都在這里 轉(zhuǎn)載請(qǐng)注明出處 http://www.reibang.com/p/2392268...
    WWWWDotPNG閱讀 13,504評(píng)論 13 96
  • 前言 本篇文章將帶來(lái)YYCache的解讀如蚜,YYCache支持內(nèi)存和本地兩種方式的數(shù)據(jù)存儲(chǔ)压恒。我們先拋出兩個(gè)問(wèn)題: Y...
    老馬的春天閱讀 3,617評(píng)論 17 32
  • 前不久做了一個(gè)生成快照的需求,其中用到 SDWebImage 來(lái)下載圖片错邦,在使用該框架的過(guò)程中也遇到了一些問(wèn)題探赫,索...
    ShannonChenCHN閱讀 14,090評(píng)論 12 241
  • 全文目錄:《碎鉆》 【目錄】上一章:【碎鉆二十二】 混混JOE看到我的不高興,緊追了幾步拉著我的肩膀撬呢÷追停“嘿,一起走...
    兔兔啊兔兔吖閱讀 182評(píng)論 0 0
  • 長(zhǎng)治的春天一向繁復(fù)多變魂拦,才道春陽(yáng)漸暖毛仪,一場(chǎng)風(fēng)刮過(guò),感覺(jué)又被拉回到冬的蕭索里芯勘。女人節(jié)箱靴,春寒料峭。照例又是商家的促銷節(jié)...
    悠然心會(huì)閱讀 530評(píng)論 1 2