EGOCache缓存框架详细讲解

EGOCache是一个轻量级的缓存框架。用法简单方便,在现在的项目中,我就用到EGOCache来缓存下载过的照片和字符串。

有人可能会问到,缓存照片还需要用EGOCache吗?AFNetworkingSDWebImage不是已经有这些功能了吗?

是的,不过AFNetworking和SDWebImage是http。我的项目用的是socket,所以我选择EGOCache来做缓存。用下来觉得EGOCache还是挺强大的。

EGOCache简介

EGOCache一个简单、线程安全的基于key-value的缓存框架,原生支持NSString、UI/NSImage、和NSData,也支持储存任何实现<NSCoding>协议的类,可以设定缓存过期时间,默认是1天。

EGOCache只有一个类,EGOCache.h和EGOCache.m两个文件。用法也比较容易掌握,仔细研究一下EGOCache.h的方法,很快就可以上手。

EGOCache只提供了磁盘缓存,没有提供内存缓存。同时,也提供了清理缓存的方法:

 

-(void)clearCache;

 

EGOCache还提供了判断缓存是否存在的方法:

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

 

通过Cocoapods直接加入项目

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

pod 'EGOCache'

然后执行:

$ podupdate

EGOCache用法

1. 用EGOCache缓存NSString

存储:

NSString*saveString=@"把我保存起来吧";

[[EGOCacheglobalCache]setString:saveStringforKey:[NSStringstringWithFormat:@"EGOImageLoader-%lu",(unsignedlong)[saveStringhash]]withTimeoutInterval:24*60*60];

 

读取:

NSString*getSaveString=[[EGOCacheglobalCache]stringForKey:[NSStringstringWithFormat:@"EGOImageLoader-%lu",(unsignedlong)[@"SaveString"hash]]];

 

是不是感觉跟NSDictionary很相似,确实,前面我们说了EGOCache是基于key-value的缓存框架。

2. 用EGOCache缓存UIImage

存储:

UIImage*saveImage=[UIImageimageNamed:@"iOSDevTip"];

[[EGOCacheglobalCache]setImage:saveImageforKey:[NSStringstringWithFormat:@"EGOImageLoader-%lu",(unsignedlong)[@"SaveImage"hash]]withTimeoutInterval:24*60*60];

 

读取:

UIImage*getSaveImage=[[EGOCacheglobalCache]imageForKey:[NSStringstringWithFormat:@"EGOImageLoader-%lu",(unsignedlong)[@"SaveImage"hash]]];

 

3. 用EGOCache缓存NSData

存储:

NSData*saveData=[NSDatadata];

[[EGOCacheglobalCache]setData:saveDataforKey:[NSStringstringWithFormat:@"EGOImageLoader-%lu",(unsignedlong)[@"SaveData"hash]]withTimeoutInterval:24*60*60];

 

读取:

UIImage*getSaveData=[[EGOCacheglobalCache]dataForKey:[NSStringstringWithFormat:@"EGOImageLoader-%lu",(unsignedlong)[@"SaveData"hash]]];

 

EGOCache源码下载

EGOCache

posted @ 2015-12-03 17:11  明天日落之前  阅读(276)  评论(0编辑  收藏  举报