zoukankan      html  css  js  c++  java
  • NSCach 的知识小记

    (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 = 8;
            _cache.delegate = self;
        }
        return _cache;
    }
    
    
    - (IBAction)saveBtnClick:(id)sender {
        for (NSInteger i = 0; i < 10; i++) {
            NSDictionary *params = @{@"key":@"number", @"value":@(i)};
            [self.cache setObject:params forKey:@(i)];
        }
    }
    
    - (IBAction)getBtnClick:(id)sender {
        for (NSInteger i = 0; i < 10; i++) {
            NSDictionary *params = [self.cache objectForKey:@(i)];
            NSLog(@"----params---%@", params);
        }
    }
    
    #pragma mark - 代理
    - (void)cache:(NSCache *)cache willEvictObject:(id)obj {
        NSLog(@"-----开启了回收机制---数据=%@", obj);
    }

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

  • 相关阅读:
    Integer的疑惑
    简单选择排序算法
    冒泡排序
    插入排序算法java
    BinaryOperator<T>接口的用法示例+BiFunction
    装箱和拆箱、类型比较
    java的Junit的用法(转发)
    htmlnav
    好用的壁纸网站大全
    c# 财务数据编号的生辰
  • 原文地址:https://www.cnblogs.com/lyz0925/p/11540157.html
Copyright © 2011-2022 走看看