IOS开发之NSCache(缓存)

NSCache

NSCache是苹果提供的一套缓存机制

  • NSMutableDictionary使用相似
  • 线程安全,Mutable开发的类一般是线程不安全的
  • 内存不足自动释放(从缓存取数据的时候要判断是否为空)
  • 指定缓存的限额,当超出时自动释放
//缓存数量
@property NSUInteger countLimit;
//缓存成本
@property NSUInteger totalCostLimit;

- (nullable ObjectType)objectForKey:(KeyType)key;//取出
- (void)setObject:(ObjectType)obj forKey:(KeyType)key; // 0 cost
- (void)setObject:(ObjectType)obj forKey:(KeyType)key cost:(NSUInteger)g;//cost是成本
- (void)removeObjectForKey:(KeyType)key;//移除
- (void)removeAllObjects;//移除所有

NSCache的代理

//当缓存被移除的时候执行
- (void)cache:(NSCache *)cache willEvictObject:(id)obj;
	NSLog(@"缓存移除 %@",obj);
}

注意事项

  • 发生内存警告调用removeAllObjects时,该cache不可再用,无法再往里面存数据
  • 如果是自己调用则没关系
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值