NSCache小结
来源:互联网 发布:淘宝卖衣服赚钱吗 编辑:程序博客网 时间:2024/06/01 21:52
1、介绍
NSCache 是苹果提供的一个专门用来做缓存的类
使用和 NSMutableDictionary 非常相似.但是是线程安全的
取值
(id)objectForKey:(id)key;
设置对象,0成本(void)setObject:(id)obj forKey:(id)key;
设置对象并指定成本(void)setObject:(id)obj forKey:(id)key cost:(NSUInteger)g;
成本示例,以图片为例:
方案一:缓存 100 张图片
方案二:总缓存成本设定为 10M,以图片的 宽 * 高当作成本,图像像素。这样,无论缓存的多少张照片,只要像素值超过 10M,就会自动清理
结论:在缓存图像时,使用成本,比单纯设置数量要科学!
删除某个缓存的内容
(void)removeObjectForKey:(id)key;
删除全部(void)removeAllObjects;
属性
2、属性
@property NSUInteger totalCostLimit;
缓存总成本
@property NSUInteger countLimit;
缓存总数量
@property BOOL evictsObjectsWithDiscardedContent;
是否自动清理缓存,默认是 YES
3、代理方法
删除缓存对象的时候,就会调用这个方法 此方法不建议重写,仅在调试时使用,不能写耗时的操作,会严重影响 NSCach的缓存效率
- (void)cache:(NSCache *)cache willEvictObject:(id)obj
{
[NSThread sleepForTimeInterval:1.0];
NSLog(@"remove => %@",obj);
}
4、坑点:
不要在-(void)didRecieveMemoryWarning方法中调用- (void)removeAllObjects方法,否则可能会导致cache失效,无法保存数据;
- NSCache小结
- NSCache
- NSCache
- NSCache
- NSCache
- NSCache
- NSCache
- NSCache
- NSCache
- NSCache
- NSCache
- NSCache
- NSCache
- NSCache
- NSCache
- NSCache
- NSCache缓存
- NSCache和NSURLCache
- 洛谷 1125——笨小猴(简单的模拟)
- webpack 部署以及分离第三方库
- JAVA高精度_求高精度幂
- 洛谷 1056——排座椅(简单的模拟)
- leetcode 27. Remove Element
- NSCache小结
- RabbitMq相关文章索引(1)
- 洛谷 1216——USACO 1.5 数字金字塔(递推与递归二分)
- Python 2 和 Python 3版本切换的一些问题
- SVN学习1
- leetcode 2. Add Two Numbers
- 学习《企业应用架构模式》(Patterns of Enterprise Application Architecture)C02 组织领域逻辑
- java中静态域,静态常量,静态方法
- java数据库连接池学习