(1)NSCach 可以设置最大缓存数据的数量,如果超出该限制那么内部会自动开启一个回收过程把最先存储的数据删除

(2)NSCach 可以设置代理,<NSCachDelegate>,可以监听 内部开启回收过程的时候调用

参考代码如下:

#import "ViewController.h"

@interface ViewController ()<NSCacheDelegate>

@property (nonatomic, strong) NSCache *cache;

@end

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad]; } - (NSCache *)cache {
if (_cache == nil) {
_cache = [[NSCache alloc] init];
_cache.countLimit = ;
_cache.delegate = self;
}
return _cache;
} - (IBAction)saveBtnClick:(id)sender {
for (NSInteger i = ; i < ; i++) {
NSDictionary *params = @{@"key":@"number", @"value":@(i)};
[self.cache setObject:params forKey:@(i)];
}
} - (IBAction)getBtnClick:(id)sender {
for (NSInteger i = ; i < ; i++) {
NSDictionary *params = [self.cache objectForKey:@(i)];
NSLog(@"----params---%@", params);
}
} #pragma mark - 代理
- (void)cache:(NSCache *)cache willEvictObject:(id)obj {
NSLog(@"-----开启了回收机制---数据=%@", obj);
}

这个缓存,只限于当前运行的状态数据,如果把app关了重启,那么数据也清了。

最新文章

  1. IOS密码加密
  2. Linux IO实时监控iostat命令详解
  3. 在VS2012后的版本中做数据报表时,提示尚未指定报表“Report1”的报表定义
  4. InfluxDB安装
  5. Swift基础之集成单选按钮横竖两种样式
  6. 在单用户模式下修改CentOS的root密码
  7. ubuntu---网络管理
  8. 【Swift】iOS开发笔记(一)
  9. 【js高程学习笔记】关于变量值和函数参数
  10. nova client和nova restfull api区别
  11. Flutter 学习资料
  12. 环境变量(environment variable)
  13. tensorflow object detection
  14. 针对开发项目的NABCD的分析
  15. .net MVC, webAPI,webForm集成steeltoe+springcloud实现调用服务中心服务的总结
  16. JS 跨域认识及如何解决
  17. Android GridView使用View.GONE只隐藏内容而不隐藏空间的解决方案
  18. 翻译 | The Principles of OOD 面向对象设计原则
  19. [Bayes] What is Sampling
  20. Apache双机热备

热门文章

  1. [browser navigator 之plugins] 写了一个检测游览器插件
  2. HTML基础——表格的应用
  3. Spark中持久化和序列化学习
  4. Shell—常见报错问题
  5. Linux系统学习 六、网络基础—Linux的IP地址的配置
  6. 201871010113-刘兴瑞《面向对象程序设计(java)》第十五周学习总结
  7. 【CentOS7】CentOS7各个版本镜像下载地址(转)
  8. Paper | Deep Mutual Learning
  9. pytorch固定部分参数
  10. vscode相关设置