继承于: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的写的好。特别是命名,方法的介绍。