繼承于: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的寫的好。特別是命名,方法的介紹。