標籤:egocache egocache緩衝 egocache緩衝架構 egocache使用 剛剛線上
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
作者李剛是剛剛線上(www.superqq.com)站長,百度百家專欄作者
iOS工程師非著名自媒體,公眾號iOS開發:iOSDevTip運營者
?
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
EGOCache緩衝架構詳細講解