NSCache

创建NSCache对象

NSCache *cache = [[NSCache alloc] init];

保存数据

[cache setObject:obj forKey:key];

读取数据

id obj = [self.cache objectForKey:key];

删除数据

[cache removeObjectForKey:key];

删除所有数据

[cache removeAllObjects];

设置自动回收

设置最大开销
设置最大消耗的同时,需要在保存数据时设置相应的消耗值。

cache.totalCostLimit = 8
[cache setObject:obj forKey:key cost:1];

设置最大开销为8,每存一条数据的开销为1,所以最大可以存8条数据;当存到第9条时,会先删除第一条(最早存的)数据,再保存新的数据。

设置最大数量

cache.countLimit = 7;

设置最大存储数量为7,则保存到第8条数据时,会先删除第一条(最早存的)数据,再保存新的数据。

监听内存释放过程

让NSCache对象遵循NSCacheDelegate代理,通过代理方法,可以监听超过最大限制时,数据的释放过程。

- (void)cache:(NSCache *)cache willEvictObject:(id)obj {
    // 有数据被删除时调用
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容