利用NSCache 和 沙盒文件存储 进行 app当中的数据缓存


     在iOS 的数据存储类中,NSCache 和 NSDictionary 类很像,都是通过key值寻找其对应的值。不同的是,在内存不足时,NSCache 会自动释放。
     在很多的app中,要求数据缓存,或者是图片进行缓存,如果直接在沙盒文件当中读取,会出现app前端出现卡顿的现象。
     所以,可以利用NSCache和文件结合的方式,先将文件当中的数据读取到NSCache类当中,前台加载时可以读取NSCache类,如果NSCache 中没有相应的数据,则再从文件当中读取。
     
功能:
     1、在没有进行网络连接或者是在没有网络数据获取时,首先加载app中存储的数据和图片。
      2、缓存数据的存储为:获取数据——>存放到NSCache——>写入到文件当中 ,为了不阻碍主线程的运行,文件存储在子线程当中
     3、缓存数据的读取为:判断NSCache 中是否有缓存数据——>(若没有缓存数据)读取文件当中的数据

 使用方式:
     类文件为 CacheModel类,点此下载
 

目前可以使用的方法共有3个

/*
    单例模式
*/
+ (CacheModel *)sharedWithCacheModel;

/*
    从NSCache读写数据
*/
- (id)readInfoFromCacheByKey:(NSString *)Key Type:(NSString *)type;
- (void)writeInfoToCacheByKey:(NSString *)Key Type:(NSString *)type Content:(id)content;

读取数据时的使用方式
- (id)readInfoFromCacheByKey:(NSString *)Key Type:(NSString *)type;
Key: 表示在cache当中存放的Key值
Type: 表示需要缓存数据返回的类型,目前可以返回NSString、NSArray及NSDictionary三种类型
举例:
 
 NSDictionary *info = [[CacheModel sharedWithCacheModel] readInfoFromCacheByKey:CacheFileName Type:NSStringFromClass([NSDictionary class])]; 
表示是查找 CacheFileName 为key值,以NSDictionary类型返回 的数据



数据写入时的使用方式
- (void)writeInfoToCacheByKey:(NSString *)Key Type:(NSString *)type Content:(id)content;
content:需要写入的内容
type 为content 的类型,如果content类型为NSDictionary,则type为NSStringFromClass([NSDictionary class])




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值