NSCache的缓存
来源:互联网 发布:最优化理论与算法 编辑:程序博客网 时间:2024/05/21 10:25
NSCache苹果提供的一套缓存机制。
和NSMutableDictionary使用起来相似。
线程安全,Mutable开发的类一般都是线程不安全的。
当内存不足时会自动释放内存(所以从缓存中取数据的时候总要判断是否为空) 。
指定缓存的限额,当缓存超出限额自动释放内存。
- (NSCache *)cache
{
if (_cache ==nil) {
_cache = [[NSCachealloc] init];
_cache.delegate =self;
// 设置缓存的个数(限额)
_cache.countLimit =5;
//设置缓存成本(多少M)
_cache.totalCostlimit=10M;
}
return _cache;
}
/// NSCache的代理方法,在对象将要从cache中移除的时候调用的
- (void)cache:(NSCache *)cache willEvictObject:(id)obj
{
NSLog(@"移除 %@",obj);
}
// 循环的向cache中添加对象
for (int i =0; i < 10; i++) {
NSString *str = [NSStringstringWithFormat:@"hello_%d",i+1];
NSLog(@"添加 %@",str);
NSString *key = [NSStringstringWithFormat:@"key_%d",i];
[self.cachesetObject:str forKey:key];
}
// 循环的取值
for (int i =0; i < 10; i++) {
NSString *key = [NSStringstringWithFormat:@"key_%d",i];
NSString *str = [self.cacheobjectForKey:key];
NSLog(@"获取 %@",str);
}
//清空缓存
[self.cacheremoveAllObjects];
- (void)didReceiveMemoryWarning {
[superdidReceiveMemoryWarning];
// 注意 : 一旦在 didReceiveMemoryWarning调用移除全部对象的方法之后,那么这个cache永远不会再去添加对象
[self.cacheremoveAllObjects];
}
- NSCache的缓存
- NSCache缓存类的详解
- NSCache缓存
- NSCache:实现缓存的类可以提高效率
- iOS NSCache缓存类的详解
- NSCache 原理 (著名开源框架SDWebImage 就是使用的NSCache实现的缓存)
- iOS_缓存NSCache
- OC缓存 NSCache介绍
- OS缓存策略——NSCache的简单使用
- IOS学习 NSCache 缓存类
- NSCache 缓存类源码分析
- NSCache 的使用方法
- NSCache的简单使用
- 关于NSCache的使用
- NSCache的基本使用
- 利用NSCache 和 沙盒文件存储 进行 app当中的数据缓存
- NSCache
- NSCache
- 互斥 临界区 自旋锁 排队自旋锁 MCSLOCK 性能简单测试
- BufferedInputStream实现原理分析
- HTTP 方法:GET 对比 POST
- hadoop运行报错Wrong FS: hdfs:/, expected: file:///
- Eclipse将引用了第三方jar包的Java项目打包成jar文件的两种方法
- NSCache的缓存
- MyEclipse设置编码方式
- post和get的区别
- String简单的存储问题,弄不好你也不清楚
- vc 调用webservice
- Java设计模式(二):单例模式的5种实现方式,以及在多线程环境下5种创建单例模式的效率
- java socket编程
- FastClick消除点击延时提高程序的运行效率
- UI控件笔记(十七):UI之UI阶段控件常用方法大全总结