SDImageCache类说明


继承于:NSObject


声明处:SDImageCache.h


概述

SDImageCache维持一个内存缓存和一个可选的硬盘缓存。硬盘缓存写操作是异步执行的,所以不会给UI添加不必要的延迟。

任务

  • config 属性
  • maxMemoryCost 属性
  • maxMemoryCountLimit 属性
  • + sharedImageCache
  • – initWithNamespace:
  • – initWithNamespace:diskCacheDirectory:
  • – makeDiskCachePath:
  • – addReadOnlyCachePath:
  • – storeImage:forKey:completion:
  • – storeImage:forKey:toDisk:completion:
  • – storeImage:imageData:forKey:toDisk:completion:
  • – storeImageDataToDisk:forKey:
  • – diskImageExistsWithKey:completion:
  • – queryCacheOperationForKey:done:
  • – imageFromMemoryCacheForKey:
  • – imageFromDiskCacheForKey:
  • – imageFromCacheForKey:
  • – removeImageForKey:withCompletion:
  • – removeImageForKey:fromDisk:withCompletion:
  • – clearMemory
  • – clearDiskOnCompletion:
  • – deleteOldFilesWithCompletionBlock:
  • – getSize
  • – getDiskCount
  • – calculateSizeWithCompletionBlock:
  • – cachePathForKey:inPath:
  • – defaultCachePathForKey:

属性

config

@property (nonatomic, nonnull, readonly) SDImageCacheConfig *config

讨论

缓存配置对象 - 存储所有类型的设置。

声明处

SDImageCache.h

maxMemoryCost

@property (assign, nonatomic) NSUInteger maxMemoryCost

讨论

内存中保存图片缓存的最大开销值。在内存中的开销是像素的个数占有的。

声明处

SDImageCache.h

maxMemoryCountLimit

@property (assign, nonatomic) NSUInteger maxMemoryCountLimit

讨论

缓存能拥有的最大对象个数。

声明处

SDImageCache.h

类方法

sharedImageCache

+ (nonnull instancetype)sharedImageCache

讨论

返回全局共享的缓存实例。

返回值

SDImageCache全局实例。

声明处

SDImageCache.h

实例方法

addReadOnlyCachePath:

- (void)addReadOnlyCachePath:(nonnull NSString *)path

讨论

如果你的应用想绑定预加载图片,通过SDImageCache方便的搜索图片预存储添加一个只读缓存路径。

参数

path

用于只读缓存路径的路径。

声明处

SDImageCache.h

cachePathForKey:inPath:

- (nullable NSString *)cachePathForKey:(nullable NSString *)key inPath:(nonnull NSString *)path

讨论

根据一个指定的key获取缓存路径。(需要缓存路径的根目录)

参数

key

key值(从url使用cacheKeyForURL能获取到)

path

缓存路径的主目录

返回值

缓存路径

声明处

SDImageCache.h

calculateSizeWithCompletionBlock:

- (void)calculateSizeWithCompletionBlock:(nullable SDWebImageCalculateSizeBlock)completionBlock

讨论

异步计算硬盘缓存大小。

声明处

SDImageCache.h

clearDiskOnCompletion:

- (void)clearDiskOnCompletion:(nullable SDWebImageNoParamsBlock)completion

讨论

异步清除所有硬盘缓存的图片。没有块方法则立即返回。

参数

completion

一个缓存清除完成后应该被执行的块,这个块是可选的。

声明处

SDImageCache.h

clearMemory

- (void)clearMemory

讨论

清理所有内容中的缓存图片。

声明处

SDImageCache.h

defaultCachePathForKey:

- (nullable NSString *)defaultCachePathForKey:(nullable NSString *)key

讨论

根据一个指定的key获取默认的缓存路径。

参数

key

key值(可以在url中使用cacheKeyForURL获取到)

返回值

默认缓存路径。

声明处

SDImageCache.h

deleteOldFilesWithCompletionBlock:

- (void)deleteOldFilesWithCompletionBlock:(nullable SDWebImageNoParamsBlock)completionBlock

讨论

异步从硬盘移除所有已过期的图片缓存。没有块方法则直接返回。

参数

completionBlock

一个缓存过期后立即被执行的块。(这个参数是可选的)

声明处

SDImageCache.h

diskImageExistsWithKey:completion:

- (void)diskImageExistsWithKey:(nullable NSString *)key completion:(nullable SDWebImageCheckCacheCompletionBlock)completionBlock

讨论

异步检查在硬盘缓存图片是否已经存在(不加载图片)。
注意: 完成块一只在主线程中执行。

参数

key

描述url的key。

completionBlock

检查完成后这个块被执行。

声明处

SDImageCache.h

getDiskCount

- (NSUInteger)getDiskCount

讨论

在硬盘缓存中获取图片的数量。

声明处

SDImageCache.h

getSize

- (NSUInteger)getSize

讨论

获取被硬盘缓存使用的大小。

声明处

SDImageCache.h

imageFromCacheForKey:

- (nullable UIImage *)imageFromCacheForKey:(nullable NSString *)key

讨论

检查内存缓存后异步查询内存或硬盘的缓存。(译者注:感觉这个内容和方法不符合啊,读者可以看看英文版)

参数

key

用于保存图片的唯一key。

声明处

SDImageCache.h

imageFromDiskCacheForKey:

- (nullable UIImage *)imageFromDiskCacheForKey:(nullable NSString *)key

讨论

异步查询硬盘缓存。

参数

key

用于保存图片的唯一key。

声明处

SDImageCache.h

imageFromMemoryCacheForKey:

- (nullable UIImage *)imageFromMemoryCacheForKey:(nullable NSString *)key

讨论

异步查询内存缓存。

参数

key

用于保存图片的唯一key。

声明处

SDImageCache.h

initWithNamespace:

- (nonnull instancetype)initWithNamespace:(nonnull NSString *)ns

讨论

根据一个指定的命名空间初始化一个新的存储缓存。

参数

ns

这个存储缓存的命名空间。

声明处

SDImageCache.h

initWithNamespace:diskCacheDirectory:

- (nonnull instancetype)initWithNamespace:(nonnull NSString *)ns diskCacheDirectory:(nonnull NSString *)directory

讨论

根据指定的命名空间和文件夹初始一个新的缓存空间。

参数

ns

这个缓存空间使用的命名空间。

directory

缓存图片到硬盘的目录中。

声明处

SDImageCache.h

makeDiskCachePath:

- (nullable NSString *)makeDiskCachePath:(nonnull NSString *)fullNamespace

(译者注:原文中没有介绍。呵呵哒)

queryCacheOperationForKey:done:

- (nullable NSOperation *)queryCacheOperationForKey:(nullable NSString *)key done:(nullable SDCacheQueryCompletedBlock)doneBlock

讨论

异步查询缓存并在完成后调用完成块。

参数

key

唯一的key用来保存需要的图片。

doneBlock

完成块。如果操作被取消则不调用完成块。

返回值

包含缓存操作的一个NSOperation实例。

声明处

SDImageCache.h

removeImageForKey:fromDisk:withCompletion:

- (void)removeImageForKey:(nullable NSString *)key fromDisk:(BOOL)fromDisk withCompletion:(nullable SDWebImageNoParamsBlock)completion

讨论

从内存中异步的移除图片,可选的从硬盘异步的移除图片。

参数

key

唯一的图片缓存key

fromDisk

如果设置为YES,同时完整的从硬盘移除。

completion

一个当图片已经被移除后执行的块,这个块是可选的。

声明处

SDImageCache.h

removeImageForKey:withCompletion:

- (void)removeImageForKey:(nullable NSString *)key withCompletion:(nullable SDWebImageNoParamsBlock)completion

讨论

异步的从内存和硬盘缓存移除图片。

参数

key

唯一的图片缓存key。

completion

一个当图片被移除后执行的块。这个块是可选的,可以设置为nil。

声明处

SDImageCache.h

storeImage:forKey:completion:

- (void)storeImage:(nullable UIImage *)image forKey:(nullable NSString *)key completion:(nullable SDWebImageNoParamsBlock)completionBlock

讨论

根据提供的key异步的将一张图片保存到内存和硬盘缓存。

参数

image

存储的图片。

key

唯一的图片缓存key,通常为图片的绝对URL。

completionBlock

一个当操作完成后被执行的块。

声明处

SDImageCache.h

storeImage:forKey:toDisk:completion:

- (void)storeImage:(nullable UIImage *)image forKey:(nullable NSString *)key toDisk:(BOOL)toDisk completion:(nullable SDWebImageNoParamsBlock)completionBlock

讨论

根据提供的key异步存储一张图片到内存和硬盘缓存中。

参数

image

图片存储。

key

唯一图片缓存的key,通常它是图片的绝对URL。

toDisk

如果为YES,保存图片到硬盘缓存中。

completionBlock

一个在操作完成后执行的块。

声明处

SDImageCache.h

storeImage:imageData:forKey:toDisk:completion:

- (void)storeImage:(nullable UIImage *)image imageData:(nullable NSData *)imageData forKey:(nullable NSString *)key toDisk:(BOOL)toDisk completion:(nullable SDWebImageNoParamsBlock)completionBlock

讨论

根据提供的key异步存储一张图片到内存和硬盘缓存中。

参数

image

图片存储。

imageData

服务器返回的图片数据,这表示将会为了保存质量和节约CPU使用硬盘缓存代替转换提供的图片对象为一个存储/压缩的图片格式。

key

唯一图片缓存key,通常它是图片绝对URL。

toDisk

如果为YES,保存图片到硬盘缓存。

completionBlock

一个在操作完成后执行的块。

声明处

SDImageCache.h

storeImageDataToDisk:forKey:

- (void)storeImageDataToDisk:(nullable NSData *)imageData forKey:(nullable NSString *)key

讨论

根据提供的key异步存储图片的NSData到硬盘缓存中。
警告: 这个方法是异步执行的,确保从ioQueue中进行调用。

参数

imageData

存储的image数据。

key

唯一的图片缓存key,通常它是图片的绝对URL。

声明处

SDImageCache.h

// END
2017-9-1 SDWebImage的说明文档没有AFNetworking的写的好。特别是命名,方法的介绍。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,830评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,992评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,875评论 0 331
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,837评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,734评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,091评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,550评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,217评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,368评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,298评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,350评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,027评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,623评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,706评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,940评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,349评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,936评论 2 341

推荐阅读更多精彩内容