美文网首页
你不了解的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