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