Add the SDImageCacheQueryMemoryOnly to specify query memory only
This commit is contained in:
parent
df1bb98ad6
commit
44cddbfdbf
|
@ -26,14 +26,18 @@ typedef NS_ENUM(NSInteger, SDImageCacheType) {
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) {
|
typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) {
|
||||||
|
/**
|
||||||
|
* By default, we will query disk cache if the memory cache missed. This mask can force to query memory cache only without disk data.
|
||||||
|
*/
|
||||||
|
SDImageCacheQueryMemoryOnly = 1 << 0,
|
||||||
/**
|
/**
|
||||||
* By default, we do not query disk data when the image is cached in memory. This mask can force to query disk data at the same time.
|
* By default, we do not query disk data when the image is cached in memory. This mask can force to query disk data at the same time.
|
||||||
*/
|
*/
|
||||||
SDImageCacheQueryDataWhenInMemory = 1 << 0,
|
SDImageCacheQueryDataWhenInMemory = 1 << 1,
|
||||||
/**
|
/**
|
||||||
* By default, we query the memory cache synchronously, disk cache asynchronously. This mask can force to query disk cache synchronously.
|
* By default, we query the memory cache synchronously, disk cache asynchronously. This mask can force to query disk cache synchronously.
|
||||||
*/
|
*/
|
||||||
SDImageCacheQueryDiskSync = 1 << 1
|
SDImageCacheQueryDiskSync = 1 << 2
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef void(^SDCacheQueryCompletedBlock)(UIImage * _Nullable image, NSData * _Nullable data, SDImageCacheType cacheType);
|
typedef void(^SDCacheQueryCompletedBlock)(UIImage * _Nullable image, NSData * _Nullable data, SDImageCacheType cacheType);
|
||||||
|
|
|
@ -356,7 +356,8 @@ FOUNDATION_STATIC_INLINE NSUInteger SDCacheCostForImage(UIImage *image) {
|
||||||
|
|
||||||
// First check the in-memory cache...
|
// First check the in-memory cache...
|
||||||
UIImage *image = [self imageFromMemoryCacheForKey:key];
|
UIImage *image = [self imageFromMemoryCacheForKey:key];
|
||||||
if (image && !(options & SDImageCacheQueryDataWhenInMemory)) {
|
BOOL shouldQueryMemoryOnly = (options & SDImageCacheQueryMemoryOnly) || (image && !(options & SDImageCacheQueryDataWhenInMemory));
|
||||||
|
if (shouldQueryMemoryOnly) {
|
||||||
if (doneBlock) {
|
if (doneBlock) {
|
||||||
doneBlock(image, nil, SDImageCacheTypeMemory);
|
doneBlock(image, nil, SDImageCacheTypeMemory);
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,7 +25,7 @@ typedef NS_OPTIONS(NSUInteger, SDWebImageOptions) {
|
||||||
SDWebImageLowPriority = 1 << 1,
|
SDWebImageLowPriority = 1 << 1,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This flag disables on-disk caching
|
* This flag disables on-disk caching, including cache query and cache storing
|
||||||
*/
|
*/
|
||||||
SDWebImageCacheMemoryOnly = 1 << 2,
|
SDWebImageCacheMemoryOnly = 1 << 2,
|
||||||
|
|
||||||
|
|
|
@ -145,6 +145,7 @@
|
||||||
NSString *key = [self cacheKeyForURL:url];
|
NSString *key = [self cacheKeyForURL:url];
|
||||||
|
|
||||||
SDImageCacheOptions cacheOptions = 0;
|
SDImageCacheOptions cacheOptions = 0;
|
||||||
|
if (options & SDWebImageCacheMemoryOnly) cacheOptions |= SDImageCacheQueryMemoryOnly;
|
||||||
if (options & SDWebImageQueryDataWhenInMemory) cacheOptions |= SDImageCacheQueryDataWhenInMemory;
|
if (options & SDWebImageQueryDataWhenInMemory) cacheOptions |= SDImageCacheQueryDataWhenInMemory;
|
||||||
if (options & SDWebImageQueryDiskSync) cacheOptions |= SDImageCacheQueryDiskSync;
|
if (options & SDWebImageQueryDiskSync) cacheOptions |= SDImageCacheQueryDiskSync;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue