ios-NSCache简单介绍

来源:互联网 发布:淘宝户外用品店推荐 编辑:程序博客网 时间:2024/05/16 11:49

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

1、NSCache和NSMutableDictionary使用起来很相似

2、这个类是线程安全的,Mutable开发的类一般都是线程不安全的

3、当内存不足的时候会自动的去释放内存,所以我们从缓存中取数据的时候总要判断是否为空

4、指定缓存的限额,当缓存超出限额自动释放内存

5、苹果官方解释NSCache在系统内存很低时,会自动释放对象(但模拟器演示不会释放

缓存数量,默认为0,表示没有限制

 @property NSUInteger countLimit;

缓存成本,超出上限会自动回收对象,默认为0,表示是没有限制的。

 @property NSUInteger totalCostLimit;

缓存的代理方法

//当缓存被移除的时候才会去执行其实就是将要从NSCache中移除一项的时候会执行

-(void)cache:(NSCache *)cache willEvictObject:(id)obj

{

NSLog(@"缓存移除了 %@",obj);

}

当我们限制了缓存总共可以加多少条的时候,当超过了限定的条数就会移除前面的对象。就比如说我们限定了缓存的条数为5条,我们在添加第6条的时候会先移除第1条,再去添加第6条。

当收到内存警告的时候,我们调用了removeAllObjects,无法再次从Cache中添加数据