7 SDImageCache

Posted jshuo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了7 SDImageCache相关的知识,希望对你有一定的参考价值。

- (NSOperation *)queryDiskCacheForKey:(NSString *)key done:(SDWebImageQueryCompletedBlock)doneBlock
作用:缓存中查找
现在memCache中查找,再在disk中查找(如果找到,存入缓存中)。
 
- (void)storeImage:(UIImage *)image recalculateFromImage:(BOOL)recalculate imageData:(NSData *)imageData forKey:(NSString *)key toDisk:(BOOL)toDisk
作用:先将图片存储在memCache中。然后判断图片类型,是否是png,如果是jpg,压缩质量为1,然后压缩。
检查路径文件夹是否存在,然后创建文件。
 
- (NSString *)defaultCachePathForKey:(NSString *)key 
作用: 1. 根据传入的key创建最终要存储时的文件名,进行了md5加密。
            2.将存储的文件路径和文件名绑定在一起,作为最终的存储路径。
 
clear 缓存 
  1. removeImageForKeyfromDisk:withCompletion: // 异步地将image从缓存(内存缓存以及可选的磁盘缓存)中移除
  2. clearMemory // 清楚内存缓存上的所有image [self.memCache removeAllObjects];
  3. clearDisk // 清除磁盘缓存上的所有image
  4. cleanDisk // 清除磁盘缓存上过期的image
 
- (void)removeImageForKey:(NSString *)key fromDisk:(BOOL)fromDisk withCompletion:(SDWebImageNoParamsBlock)completion
作用: 根据传入的key,删除缓存和磁盘。
 
- (void)clearDiskOnCompletion:(SDWebImageNoParamsBlock)completion
删除路径文件夹,并再创建一个文件夹。
 
- (void)cleanDiskWithCompletionBlock:(SDWebImageNoParamsBlock)completionBlock
作用:删除过期的缓存
1.根据self.diskCachePath生成NSURL和属性resourceKeys —>fileEnumerator
2.计算过期时间,(默认一周)
3。遍历文件夹 将过期的文件存入urlsToDelete 数组中。计算cache大小,并将file属性存入cacheFiles数组
4。删除urlsToDelete 数组中的文件
5,判断当前缓存大小是否大于maxCacheSize,直接将当前的cache大小降为maxCacheSize的一半
6. 删除的顺序为先删除旧的。
 
 
初始化 init
- (id)initWithNamespace:(NSString *)ns
1。创建isQueue队列
2.设置过期时间
3.初始化memCache
4.创建disk路径
5,添加通知:
内存警告 clearMemory
程序终止cleanDisk
后台backgroundCleanDisk
 
 
 
 

以上是关于7 SDImageCache的主要内容,如果未能解决你的问题,请参考以下文章

每次值更改时如何拆分列表? [复制]

PHP 7系列版本(7.07.17.27.37.4)新特性

PHP 7系列版本(7.07.17.27.37.4)新特性

day-7 city 1

学习记录:快速幂

学习记录:快速幂