EGOCache緩存框架詳細講解

jopen 9年前發布 | 12K 次閱讀 EGOCache iOS開發 移動開發

EGOCache是一個輕量級的緩存框架。用法簡單方便,在現在的項目中,我就用到EGOCache來緩存下載過的照片和字符串。

有人可能會問到,緩存照片還需要用EGOCache嗎?AFNetworking和SDWebImage不是已經有這些功能了嗎?

是的,不過AFNetworking和SDWebImage是http。我的項目用的是socket,所以我選擇EGOCache來做緩存。用下來覺得EGOCache還是挺強大的。

EGOCache簡介

EGOCache is a simple, thread-safe key value cache store. It has native support for NSString, UI/NSImage, and NSData, but can store anything that implements <NSCoding>. All cached items expire after the timeout, which by default, is one day.

翻譯過來就是:EGOCache一個簡單、線程安全的基于 key-value 的緩存框架,原生支持NSString、UI/NSImage、和NSData,也支持儲存任何實現協議的類,可以設定緩存過期時間,默認是1天。

EGOCache只有一個類,EGOCache.h和EGOCache.m兩個文件。用法也比較容易掌握,仔細研究一下EGOCache.h的方法,很快就可以上手。

EGOCache只提供了磁盤緩存,沒有提供內存緩存。同時,也提供了清理緩存的方法:

- (void)clearCache;

EGOCache還提供了判斷緩存是否存在的方法:

- (BOOL)hasCacheForKey:(NSString* __nonnull)key;

通過Cocoapods直接加入項目

直接在你的項目的Podfile加入下面一行:

pod 'EGOCache'

然后執行:

$ pod update

EGOCache用法

用EGOCache緩存NSString

存儲:

NSString *saveString = @"把我保存起來吧";
[[EGOCache globalCache] setString:saveString forKey:[NSString stringWithFormat:@"EGOImageLoader-%lu", (unsigned long)[saveString hash]] withTimeoutInterval:24*60*60];

讀取:

NSString *getSaveString = [[EGOCache globalCache] stringForKey:[NSString stringWithFormat:@"EGOImageLoader-%lu", (unsigned long)[@"SaveString" hash]]];

是不是感覺跟NSDictionary很相似,確實,前面我們說了EGOCache是基于key-value 的緩存框架。

用EGOCache緩存UIImage

存儲:

UIImage *saveImage = [UIImage imageNamed:@"iOSDevTip"];
[[EGOCache globalCache] setImage:saveImage forKey:[NSString stringWithFormat:@"EGOImageLoader-%lu", (unsigned long)[@"SaveImage" hash]] withTimeoutInterval:24*60*60];

讀取:

UIImage *getSaveImage = [[EGOCache globalCache] imageForKey:[NSString stringWithFormat:@"EGOImageLoader-%lu", (unsigned long)[@"SaveImage" hash]]];

用EGOCache緩存NSData

存儲:

NSData *saveData = [NSData data];
[[EGOCache globalCache] setData:saveData forKey:[NSString stringWithFormat:@"EGOImageLoader-%lu", (unsigned long)[@"SaveData" hash]] withTimeoutInterval:24*60*60];

讀取:

UIImage *getSaveData = [[EGOCache globalCache] dataForKey:[NSString stringWithFormat:@"EGOImageLoader-%lu", (unsigned long)[@"SaveData" hash]]];

EGOCache源碼下載

EGOCache

原文 http://www.superqq.com/blog/2015/07/01/egocachehuan-cun-kuang-jia-xia

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!