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

你可能感兴趣的:(SDImageCache类说明)