×

ios缓存策略NSCache

消耗积分:2 | 格式:rar | 大小:0.6 MB | 2017-09-25

分享资料个

今天来共同学习一下NSCache的相关知识,有疏忽的地方,还望各位不吝赐教。

一、简介

1、NSCache是苹果官方提供的的缓存类,具体使用是和NSDictionary很相似的,在AFNetworking和SDWebImage第三方框架中被用作管理缓存。

2、NSCache在系统内存很低时会自动释放对象,但是在模拟器进行演示的时候不会释放,这一点要注意,所以最好是在内存进行警告时主动去调用方法去释放对象。

3、NSCache是线程安全的,在进行多线程操作时,不需要进行加锁。

4、NSCache的Key只是对对象进行了Strong引用,而非拷贝,相关说明会在下面的例子中进行详细解释。

二、属性和方法说明

1、属性说明

// 缓存空间的最大成本,超出上限会自动回收对象,默认值是0,表示没有限制。

@property NSUInteger totalCostLimit;

// 能够缓存对象的最大数量。默认值为0,表示没有限制。

@property NSUInteger countLimit;

// 标识缓存是否回收废弃的内容。

@property BOOL evictsObjectsWithDiscardedContent;

2、方法说明

// 通过指定的键取出在缓存中存储的数据。

- (nullable ObjectType)objectForKey:(KeyType)key;

// 在缓存中设置指定键名对应的值,成本为0。

- (void)setObject:(ObjectType)obj forKey:(KeyType)key;

// 在缓存中设置指定键名对应的值,并且指定回收成本,以便进行计算存储在缓存中对象的总成本,当出现内存警告或者超出总成本时,缓存就会进行删除部分元素的操作。

- (void)setObject:(ObjectType)obj forKey:(KeyType)key cost:(NSUInteger)g;

// 通过指定的键清除在缓存中存储的数据。

- (void)removeObjectForKey:(KeyType)key;

// 清除在缓存中存储的所有数据。

- (void)removeAllObjects;

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !