iOS官方文档 Foundation篇---NSCache

2019-05-22  本文已影响0人  qianfei

NSCache

一个可变集合,用于临时存储,在资源不足时可能被清除的临时键值对;继承自NSObject;类似于NSMutableDictionary的可变集合;

使用
NSCache *cahce = [[NSCache alloc]init];
// 缓存名称
cahce.name = @"test";

// 缓存保留的最大对象数
cahce.countLimit = 5;

// 缓存在开始销毁对象之前可以保留的最大对象数
cahce.totalCostLimit = 2;

// 是否自动删除可丢弃的内容
cahce.evictsObjectsWithDiscardedContent = YES;

// 设置缓存代理
cahce.delegate = self;

// 添加缓存值
for (NSUInteger i = 0; i < 7; i++) {
    NSString *key = [NSString stringWithFormat:@"key%ld",i];
    NSString *obj = [NSString stringWithFormat:@"%ld",i];
    [cahce setObject:obj forKey:key];
}

// 取值
for (NSUInteger i = 0; i < 7; i++) {
    NSString *key = [NSString stringWithFormat:@"key%ld",i];
    NSString *obj = [cahce objectForKey:key];
    NSLog(@"%@ = %@",key,obj);
/*
    key0 = (null)
    key1 = (null)
    key2 = 2
    key3 = 3
    key4 = 4
    key5 = 5
    key6 = 6
*/
}

// 删除指定键的缓存
[cahce removeObjectForKey:@"key0"];

// 删除所有缓存
[cahce removeAllObjects];

// 缓存中的一个对象即将被删除时(代理方法)
- (void)cache:(NSCache *)cache willEvictObject:(id)obj{

}
欢迎留言指正,会持续更新。。。
上一篇下一篇

猜你喜欢

热点阅读