NSCache
NSCache
是苹果提供的一套缓存机制
- 和
NSMutableDictionary
使用相似 - 线程安全,
Mutable
开发的类一般是线程不安全的 - 内存不足自动释放(从缓存取数据的时候要判断是否为空)
- 指定缓存的限额,当超出时自动释放
@property NSUInteger countLimit;
@property NSUInteger totalCostLimit;
- (nullable ObjectType)objectForKey:(KeyType)key;
- (void)setObject:(ObjectType)obj forKey:(KeyType)key;
- (void)setObject:(ObjectType)obj forKey:(KeyType)key cost:(NSUInteger)g;
- (void)removeObjectForKey:(KeyType)key;
- (void)removeAllObjects;
NSCache的代理
- (void)cache:(NSCache *)cache willEvictObject:(id)obj;
NSLog(@"缓存移除 %@",obj);
}
注意事项
- 发生内存警告调用
removeAllObjects
时,该cache
不可再用,无法再往里面存数据 - 如果是自己调用则没关系