美文网首页
你不了解的SDWebImage

你不了解的SDWebImage

作者: 宙斯YY | 来源:发表于2018-06-15 11:11 被阅读9次

    一.二级缓存

    获取图片URL的时候,首先检查内存缓存,如果有则获取该图片;没有则检查外存缓存,有则获取该图片,没有则从URL下载,并根据存储策略存储到内存和外存中。
    其中几个要点是:

    1.内存缓存方式
    2.外存缓存方式
    3.下载方式

    二.SD的方式

    1.内存缓存的方式是NSCode

    NSCode可以根据自定义的存储条数和相对花销自动清理最早的存储数据,保证内存空间稳定,而且是线程安全的。

    //创建NSCache
    - (NSCache *)cache
    {
        if (_cache == nil) {
            _cache = [[NSCache alloc] init];
            _cache.countLimit =100;//设置最大存储数量,超过则自动清理之前的存储数据
            //_cache.totalCostLimit=100;//设置最大相对开销数,超过则自动清理之前的存储数据
        }
        return _cache;
    }
    
    //存储数据
    [self.cache setObject:value forKey:key];
    //设置自定义开销
    [self.cache setObject:value forKey:key cost:2];
    
    //获取数据
    self.cache objectForKey:key];
    
    2.外存缓存的存储方式是把图片进行MD5加密,存储在Lib/Cache的子文件夹中,默认过期时间是1week。
    3.异步下载资源,把任务放到队列中防止重复下载,默认FIFO,最大并发数6。核心类是

    DownLoader,DownOperation。

    相关文章

      网友评论

          本文标题:你不了解的SDWebImage

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