NSCache

2016-05-15  本文已影响354人  珍此良辰

NSCache是什么?


NSCache属性


@property (copy) NSString *name;   //  名称
@property (nullable, assign) id<NSCacheDelegate> delegate;  //  代理设置

@property NSUInteger totalCostLimit;    //  缓存空间的最大总成本,超出上限自动回收对象,默认为0,表示没有限制(限制是不精/不严格的)
@property NSUInteger countLimit;    //  能够缓存的对象最大数量,默认为0,表示没有限制(限制是不精/不严格的)
@property BOOL evictsObjectsWithDiscardedContent;  //  标记缓存是否回收废弃内容


NSCache方法


//  根据指定key取出对象
- (nullable ObjectType)objectForKey:(KeyType)key;
//  在缓存中设置指定key名对应的值,0成本
- (void)setObject:(ObjectType)obj forKey:(KeyType)key; // 0 cost
//  在缓存中设置指定key,并指定该key值对应的成本,用于计算记录在缓存中的所有对象的总成本
- (void)setObject:(ObjectType)obj forKey:(KeyType)key cost:(NSUInteger)g;

//  当出现内存警告或超出缓存总成本上限是,缓存会开启一个回收过程,删除部分元素
//  删除缓存中指定key的对象
- (void)removeObjectForKey:(KeyType)key;
//  删除缓存中所有的对象
- (void)removeAllObjects;


//  缓存将要删除对象时调用,一般在开发是调试用(注:不能在此方法中修改缓存 )
- (void)cache:(NSCache *)cache willEvictObject:(id)obj;

上一篇下一篇

猜你喜欢

热点阅读