@@ -111,13 +111,15 @@ @implementation YYCache (SDAdditions)
111111
112112 @autoreleasepool {
113113 UIImage *diskImage;
114- SDImageCacheType cacheType = SDImageCacheTypeNone;
115114 if (image) {
116115 // the image is from in-memory cache, but need image data
117116 diskImage = image;
118- cacheType = SDImageCacheTypeMemory;
119117 } else if (diskData) {
120- cacheType = SDImageCacheTypeDisk;
118+ BOOL shouldCacheToMomery = YES ;
119+ if (context[SDWebImageContextStoreCacheType]) {
120+ SDImageCacheType cacheType = [context[SDWebImageContextStoreCacheType] integerValue ];
121+ shouldCacheToMomery = (cacheType == SDImageCacheTypeAll || cacheType == SDImageCacheTypeMemory);
122+ }
121123 // decode image data only if in-memory cache missed
122124 diskImage = SDImageCacheDecodeImageData (diskData, key, options, context);
123125 if (diskImage) {
@@ -146,18 +148,18 @@ @implementation YYCache (SDAdditions)
146148 diskImage.sd_extendedObject = extendedObject;
147149 }
148150 }
149- if (diskImage) {
151+ if (shouldCacheToMomery && diskImage) {
150152 NSUInteger cost = diskImage.sd_memoryCost ;
151153 [self .memoryCache setObject: diskImage forKey: key cost: cost];
152154 }
153155 }
154156
155157 if (doneBlock) {
156158 if (shouldQueryDiskSync) {
157- doneBlock (diskImage, diskData, cacheType );
159+ doneBlock (diskImage, diskData, SDImageCacheTypeDisk );
158160 } else {
159161 dispatch_async (dispatch_get_main_queue (), ^{
160- doneBlock (diskImage, diskData, cacheType );
162+ doneBlock (diskImage, diskData, SDImageCacheTypeDisk );
161163 });
162164 }
163165 }
0 commit comments