NSCache

2019-01-30  本文已影响0人  DPL1024

创建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 {
    // 有数据被删除时调用
}
上一篇下一篇

猜你喜欢

热点阅读