@@ -111,13 +111,15 @@ @implementation YYCache (SDAdditions)
111
111
112
112
@autoreleasepool {
113
113
UIImage *diskImage;
114
- SDImageCacheType cacheType = SDImageCacheTypeNone;
115
114
if (image) {
116
115
// the image is from in-memory cache, but need image data
117
116
diskImage = image;
118
- cacheType = SDImageCacheTypeMemory;
119
117
} 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
+ }
121
123
// decode image data only if in-memory cache missed
122
124
diskImage = SDImageCacheDecodeImageData (diskData, key, options, context);
123
125
if (diskImage) {
@@ -146,18 +148,18 @@ @implementation YYCache (SDAdditions)
146
148
diskImage.sd_extendedObject = extendedObject;
147
149
}
148
150
}
149
- if (diskImage) {
151
+ if (shouldCacheToMomery && diskImage) {
150
152
NSUInteger cost = diskImage.sd_memoryCost ;
151
153
[self .memoryCache setObject: diskImage forKey: key cost: cost];
152
154
}
153
155
}
154
156
155
157
if (doneBlock) {
156
158
if (shouldQueryDiskSync) {
157
- doneBlock (diskImage, diskData, cacheType );
159
+ doneBlock (diskImage, diskData, SDImageCacheTypeDisk );
158
160
} else {
159
161
dispatch_async (dispatch_get_main_queue (), ^{
160
- doneBlock (diskImage, diskData, cacheType );
162
+ doneBlock (diskImage, diskData, SDImageCacheTypeDisk );
161
163
});
162
164
}
163
165
}
0 commit comments