NSCache

作者: DPL1024 | 来源:发表于2019-01-30 15:27 被阅读0次

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

    相关文章

      网友评论

          本文标题:NSCache

          本文链接:https://www.haomeiwen.com/subject/helcsqtx.html