Rename the the extended data to bind it into the UIImage object, which make it compatible for memory cache
This commit is contained in:
parent
892a7ad892
commit
7c8d3225c8
|
@ -91,10 +91,10 @@
|
||||||
325C46292233A0A8004CAE11 /* NSBezierPath+RoundedCorners.m in Sources */ = {isa = PBXBuildFile; fileRef = 325C46252233A0A8004CAE11 /* NSBezierPath+RoundedCorners.m */; };
|
325C46292233A0A8004CAE11 /* NSBezierPath+RoundedCorners.m in Sources */ = {isa = PBXBuildFile; fileRef = 325C46252233A0A8004CAE11 /* NSBezierPath+RoundedCorners.m */; };
|
||||||
325F7CC623893B2E00AEDFCC /* NSFileManager+ExtendedAttributes.h in Headers */ = {isa = PBXBuildFile; fileRef = 325F7CC423893B2E00AEDFCC /* NSFileManager+ExtendedAttributes.h */; settings = {ATTRIBUTES = (Private, ); }; };
|
325F7CC623893B2E00AEDFCC /* NSFileManager+ExtendedAttributes.h in Headers */ = {isa = PBXBuildFile; fileRef = 325F7CC423893B2E00AEDFCC /* NSFileManager+ExtendedAttributes.h */; settings = {ATTRIBUTES = (Private, ); }; };
|
||||||
325F7CC723893B2E00AEDFCC /* NSFileManager+ExtendedAttributes.m in Sources */ = {isa = PBXBuildFile; fileRef = 325F7CC523893B2E00AEDFCC /* NSFileManager+ExtendedAttributes.m */; };
|
325F7CC723893B2E00AEDFCC /* NSFileManager+ExtendedAttributes.m in Sources */ = {isa = PBXBuildFile; fileRef = 325F7CC523893B2E00AEDFCC /* NSFileManager+ExtendedAttributes.m */; };
|
||||||
325F7CCA238942AB00AEDFCC /* NSData+ExtendedData.h in Headers */ = {isa = PBXBuildFile; fileRef = 325F7CC8238942AB00AEDFCC /* NSData+ExtendedData.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
325F7CCA238942AB00AEDFCC /* UIImage+ExtendedData.h in Headers */ = {isa = PBXBuildFile; fileRef = 325F7CC8238942AB00AEDFCC /* UIImage+ExtendedData.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
325F7CCB238942AB00AEDFCC /* NSData+ExtendedData.m in Sources */ = {isa = PBXBuildFile; fileRef = 325F7CC9238942AB00AEDFCC /* NSData+ExtendedData.m */; };
|
325F7CCB238942AB00AEDFCC /* UIImage+ExtendedData.m in Sources */ = {isa = PBXBuildFile; fileRef = 325F7CC9238942AB00AEDFCC /* UIImage+ExtendedData.m */; };
|
||||||
325F7CCC2389463D00AEDFCC /* NSData+ExtendedData.m in Sources */ = {isa = PBXBuildFile; fileRef = 325F7CC9238942AB00AEDFCC /* NSData+ExtendedData.m */; };
|
325F7CCC2389463D00AEDFCC /* UIImage+ExtendedData.m in Sources */ = {isa = PBXBuildFile; fileRef = 325F7CC9238942AB00AEDFCC /* UIImage+ExtendedData.m */; };
|
||||||
325F7CCD2389467800AEDFCC /* NSData+ExtendedData.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 325F7CC8238942AB00AEDFCC /* NSData+ExtendedData.h */; };
|
325F7CCD2389467800AEDFCC /* UIImage+ExtendedData.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 325F7CC8238942AB00AEDFCC /* UIImage+ExtendedData.h */; };
|
||||||
326E2F2E236F0B23006F847F /* SDAnimatedImagePlayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 326E2F2C236F0B23006F847F /* SDAnimatedImagePlayer.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
326E2F2E236F0B23006F847F /* SDAnimatedImagePlayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 326E2F2C236F0B23006F847F /* SDAnimatedImagePlayer.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
326E2F2F236F0B23006F847F /* SDAnimatedImagePlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 326E2F2D236F0B23006F847F /* SDAnimatedImagePlayer.m */; };
|
326E2F2F236F0B23006F847F /* SDAnimatedImagePlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 326E2F2D236F0B23006F847F /* SDAnimatedImagePlayer.m */; };
|
||||||
326E2F30236F0B23006F847F /* SDAnimatedImagePlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 326E2F2D236F0B23006F847F /* SDAnimatedImagePlayer.m */; };
|
326E2F30236F0B23006F847F /* SDAnimatedImagePlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 326E2F2D236F0B23006F847F /* SDAnimatedImagePlayer.m */; };
|
||||||
|
@ -304,7 +304,7 @@
|
||||||
dstPath = include/SDWebImage;
|
dstPath = include/SDWebImage;
|
||||||
dstSubfolderSpec = 16;
|
dstSubfolderSpec = 16;
|
||||||
files = (
|
files = (
|
||||||
325F7CCD2389467800AEDFCC /* NSData+ExtendedData.h in Copy Headers */,
|
325F7CCD2389467800AEDFCC /* UIImage+ExtendedData.h in Copy Headers */,
|
||||||
326E2F36236F1E30006F847F /* SDAnimatedImagePlayer.h in Copy Headers */,
|
326E2F36236F1E30006F847F /* SDAnimatedImagePlayer.h in Copy Headers */,
|
||||||
3250C9F12355E3DF0093A896 /* SDWebImageDownloaderDecryptor.h in Copy Headers */,
|
3250C9F12355E3DF0093A896 /* SDWebImageDownloaderDecryptor.h in Copy Headers */,
|
||||||
325427662355783C0042BAA4 /* SDWebImageDownloaderResponseModifier.h in Copy Headers */,
|
325427662355783C0042BAA4 /* SDWebImageDownloaderResponseModifier.h in Copy Headers */,
|
||||||
|
@ -416,8 +416,8 @@
|
||||||
325C46252233A0A8004CAE11 /* NSBezierPath+RoundedCorners.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSBezierPath+RoundedCorners.m"; sourceTree = "<group>"; };
|
325C46252233A0A8004CAE11 /* NSBezierPath+RoundedCorners.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSBezierPath+RoundedCorners.m"; sourceTree = "<group>"; };
|
||||||
325F7CC423893B2E00AEDFCC /* NSFileManager+ExtendedAttributes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSFileManager+ExtendedAttributes.h"; sourceTree = "<group>"; };
|
325F7CC423893B2E00AEDFCC /* NSFileManager+ExtendedAttributes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSFileManager+ExtendedAttributes.h"; sourceTree = "<group>"; };
|
||||||
325F7CC523893B2E00AEDFCC /* NSFileManager+ExtendedAttributes.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSFileManager+ExtendedAttributes.m"; sourceTree = "<group>"; };
|
325F7CC523893B2E00AEDFCC /* NSFileManager+ExtendedAttributes.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSFileManager+ExtendedAttributes.m"; sourceTree = "<group>"; };
|
||||||
325F7CC8238942AB00AEDFCC /* NSData+ExtendedData.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "NSData+ExtendedData.h"; path = "Core/NSData+ExtendedData.h"; sourceTree = "<group>"; };
|
325F7CC8238942AB00AEDFCC /* UIImage+ExtendedData.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "UIImage+ExtendedData.h"; path = "Core/UIImage+ExtendedData.h"; sourceTree = "<group>"; };
|
||||||
325F7CC9238942AB00AEDFCC /* NSData+ExtendedData.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "NSData+ExtendedData.m"; path = "Core/NSData+ExtendedData.m"; sourceTree = "<group>"; };
|
325F7CC9238942AB00AEDFCC /* UIImage+ExtendedData.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "UIImage+ExtendedData.m"; path = "Core/UIImage+ExtendedData.m"; sourceTree = "<group>"; };
|
||||||
326E2F2C236F0B23006F847F /* SDAnimatedImagePlayer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImagePlayer.h; path = Core/SDAnimatedImagePlayer.h; sourceTree = "<group>"; };
|
326E2F2C236F0B23006F847F /* SDAnimatedImagePlayer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImagePlayer.h; path = Core/SDAnimatedImagePlayer.h; sourceTree = "<group>"; };
|
||||||
326E2F2D236F0B23006F847F /* SDAnimatedImagePlayer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImagePlayer.m; path = Core/SDAnimatedImagePlayer.m; sourceTree = "<group>"; };
|
326E2F2D236F0B23006F847F /* SDAnimatedImagePlayer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImagePlayer.m; path = Core/SDAnimatedImagePlayer.m; sourceTree = "<group>"; };
|
||||||
326E2F31236F1D58006F847F /* SDDeviceHelper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDDeviceHelper.h; sourceTree = "<group>"; };
|
326E2F31236F1D58006F847F /* SDDeviceHelper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDDeviceHelper.h; sourceTree = "<group>"; };
|
||||||
|
@ -757,8 +757,8 @@
|
||||||
children = (
|
children = (
|
||||||
5D5B9140188EE8DD006D06BD /* NSData+ImageContentType.h */,
|
5D5B9140188EE8DD006D06BD /* NSData+ImageContentType.h */,
|
||||||
5D5B9141188EE8DD006D06BD /* NSData+ImageContentType.m */,
|
5D5B9141188EE8DD006D06BD /* NSData+ImageContentType.m */,
|
||||||
325F7CC8238942AB00AEDFCC /* NSData+ExtendedData.h */,
|
325F7CC8238942AB00AEDFCC /* UIImage+ExtendedData.h */,
|
||||||
325F7CC9238942AB00AEDFCC /* NSData+ExtendedData.m */,
|
325F7CC9238942AB00AEDFCC /* UIImage+ExtendedData.m */,
|
||||||
A18A6CC5172DC28500419892 /* UIImage+GIF.h */,
|
A18A6CC5172DC28500419892 /* UIImage+GIF.h */,
|
||||||
A18A6CC6172DC28500419892 /* UIImage+GIF.m */,
|
A18A6CC6172DC28500419892 /* UIImage+GIF.m */,
|
||||||
329A18571FFF5DFD008C9A2F /* UIImage+Metadata.h */,
|
329A18571FFF5DFD008C9A2F /* UIImage+Metadata.h */,
|
||||||
|
@ -864,7 +864,7 @@
|
||||||
3257EAFA21898AED0097B271 /* SDImageGraphics.h in Headers */,
|
3257EAFA21898AED0097B271 /* SDImageGraphics.h in Headers */,
|
||||||
32D3CDD121DDE87300C4DB49 /* UIImage+MemoryCacheCost.h in Headers */,
|
32D3CDD121DDE87300C4DB49 /* UIImage+MemoryCacheCost.h in Headers */,
|
||||||
328BB6AC2081FEE500760D6C /* SDWebImageCacheSerializer.h in Headers */,
|
328BB6AC2081FEE500760D6C /* SDWebImageCacheSerializer.h in Headers */,
|
||||||
325F7CCA238942AB00AEDFCC /* NSData+ExtendedData.h in Headers */,
|
325F7CCA238942AB00AEDFCC /* UIImage+ExtendedData.h in Headers */,
|
||||||
325C46272233A0A8004CAE11 /* NSBezierPath+RoundedCorners.h in Headers */,
|
325C46272233A0A8004CAE11 /* NSBezierPath+RoundedCorners.h in Headers */,
|
||||||
321B378F2083290E00C0EA77 /* SDImageLoadersManager.h in Headers */,
|
321B378F2083290E00C0EA77 /* SDImageLoadersManager.h in Headers */,
|
||||||
329A185B1FFF5DFD008C9A2F /* UIImage+Metadata.h in Headers */,
|
329A185B1FFF5DFD008C9A2F /* UIImage+Metadata.h in Headers */,
|
||||||
|
@ -1115,7 +1115,7 @@
|
||||||
3257EAFD21898AED0097B271 /* SDImageGraphics.m in Sources */,
|
3257EAFD21898AED0097B271 /* SDImageGraphics.m in Sources */,
|
||||||
3290FA0C1FA478AF0047D20C /* SDImageFrame.m in Sources */,
|
3290FA0C1FA478AF0047D20C /* SDImageFrame.m in Sources */,
|
||||||
325C46232233A02E004CAE11 /* UIColor+HexString.m in Sources */,
|
325C46232233A02E004CAE11 /* UIColor+HexString.m in Sources */,
|
||||||
325F7CCB238942AB00AEDFCC /* NSData+ExtendedData.m in Sources */,
|
325F7CCB238942AB00AEDFCC /* UIImage+ExtendedData.m in Sources */,
|
||||||
321E60C61F38E91700405457 /* UIImage+ForceDecode.m in Sources */,
|
321E60C61F38E91700405457 /* UIImage+ForceDecode.m in Sources */,
|
||||||
3244062E2296C5F400A36084 /* SDWebImageOptionsProcessor.m in Sources */,
|
3244062E2296C5F400A36084 /* SDWebImageOptionsProcessor.m in Sources */,
|
||||||
3250C9F02355D9DA0093A896 /* SDWebImageDownloaderDecryptor.m in Sources */,
|
3250C9F02355D9DA0093A896 /* SDWebImageDownloaderDecryptor.m in Sources */,
|
||||||
|
@ -1217,7 +1217,7 @@
|
||||||
5376130D155AD0D5005750A4 /* SDWebImagePrefetcher.m in Sources */,
|
5376130D155AD0D5005750A4 /* SDWebImagePrefetcher.m in Sources */,
|
||||||
328BB6C72082581100760D6C /* SDDiskCache.m in Sources */,
|
328BB6C72082581100760D6C /* SDDiskCache.m in Sources */,
|
||||||
3248475D201775F600AF9E5A /* SDAnimatedImageView.m in Sources */,
|
3248475D201775F600AF9E5A /* SDAnimatedImageView.m in Sources */,
|
||||||
325F7CCC2389463D00AEDFCC /* NSData+ExtendedData.m in Sources */,
|
325F7CCC2389463D00AEDFCC /* UIImage+ExtendedData.m in Sources */,
|
||||||
32D1222A2080B2EB003685A3 /* SDImageCachesManager.m in Sources */,
|
32D1222A2080B2EB003685A3 /* SDImageCachesManager.m in Sources */,
|
||||||
32B9B53D206ED4230026769D /* SDWebImageDownloaderConfig.m in Sources */,
|
32B9B53D206ED4230026769D /* SDWebImageDownloaderConfig.m in Sources */,
|
||||||
43A9186B1D8308FE00B3925F /* SDImageCacheConfig.m in Sources */,
|
43A9186B1D8308FE00B3925F /* SDImageCacheConfig.m in Sources */,
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
#import "SDAnimatedImage.h"
|
#import "SDAnimatedImage.h"
|
||||||
#import "UIImage+MemoryCacheCost.h"
|
#import "UIImage+MemoryCacheCost.h"
|
||||||
#import "UIImage+Metadata.h"
|
#import "UIImage+Metadata.h"
|
||||||
#import "NSData+ExtendedData.h"
|
#import "UIImage+ExtendedData.h"
|
||||||
|
|
||||||
@interface SDImageCache ()
|
@interface SDImageCache ()
|
||||||
|
|
||||||
|
@ -198,6 +198,13 @@
|
||||||
data = [[SDImageCodersManager sharedManager] encodedDataWithImage:image format:format options:nil];
|
data = [[SDImageCodersManager sharedManager] encodedDataWithImage:image format:format options:nil];
|
||||||
}
|
}
|
||||||
[self _storeImageDataToDisk:data forKey:key];
|
[self _storeImageDataToDisk:data forKey:key];
|
||||||
|
if (image) {
|
||||||
|
// Check extended data
|
||||||
|
NSData *extendedData = image.sd_extendedData;
|
||||||
|
if (extendedData) {
|
||||||
|
[self.diskCache setExtendedData:extendedData forKey:key];
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (completionBlock) {
|
if (completionBlock) {
|
||||||
|
@ -239,10 +246,6 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
[self.diskCache setData:imageData forKey:key];
|
[self.diskCache setData:imageData forKey:key];
|
||||||
NSData *extendedData = imageData.sd_extendedData;
|
|
||||||
if (extendedData) {
|
|
||||||
[self.diskCache setExtendedData:extendedData forKey:key];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma mark - Query and Retrieve Ops
|
#pragma mark - Query and Retrieve Ops
|
||||||
|
@ -325,11 +328,6 @@
|
||||||
|
|
||||||
NSData *data = [self.diskCache dataForKey:key];
|
NSData *data = [self.diskCache dataForKey:key];
|
||||||
if (data) {
|
if (data) {
|
||||||
// Check extended data
|
|
||||||
NSData *extendedData = [self.diskCache extendedDataForKey:key];
|
|
||||||
if (extendedData) {
|
|
||||||
data.sd_extendedData = extendedData;
|
|
||||||
}
|
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -356,6 +354,10 @@
|
||||||
- (nullable UIImage *)diskImageForKey:(nullable NSString *)key data:(nullable NSData *)data options:(SDImageCacheOptions)options context:(SDWebImageContext *)context {
|
- (nullable UIImage *)diskImageForKey:(nullable NSString *)key data:(nullable NSData *)data options:(SDImageCacheOptions)options context:(SDWebImageContext *)context {
|
||||||
if (data) {
|
if (data) {
|
||||||
UIImage *image = SDImageCacheDecodeImageData(data, key, [[self class] imageOptionsFromCacheOptions:options], context);
|
UIImage *image = SDImageCacheDecodeImageData(data, key, [[self class] imageOptionsFromCacheOptions:options], context);
|
||||||
|
if (image) {
|
||||||
|
// Check extended data
|
||||||
|
image.sd_extendedData = [self.diskCache extendedDataForKey:key];
|
||||||
|
}
|
||||||
return image;
|
return image;
|
||||||
} else {
|
} else {
|
||||||
return nil;
|
return nil;
|
||||||
|
|
|
@ -10,10 +10,10 @@
|
||||||
#import <Foundation/Foundation.h>
|
#import <Foundation/Foundation.h>
|
||||||
#import "SDWebImageCompat.h"
|
#import "SDWebImageCompat.h"
|
||||||
|
|
||||||
@interface NSData (ExtendedData)
|
@interface UIImage (ExtendedData)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Read and Write the extended data to the image data. Which can hold some extra metadata like Image's scale factor, URL rich link, date, etc.
|
Read and Write the extended data and bind it to the image. Which can hold some extra metadata like Image's scale factor, URL rich link, date, etc.
|
||||||
The extended data will be write to disk cache as well as the image data. The disk cache preserve both of the data and extended data with the same cache key.
|
The extended data will be write to disk cache as well as the image data. The disk cache preserve both of the data and extended data with the same cache key.
|
||||||
*/
|
*/
|
||||||
@property (nonatomic, strong, nullable) NSData *sd_extendedData;
|
@property (nonatomic, strong, nullable) NSData *sd_extendedData;
|
|
@ -7,10 +7,10 @@
|
||||||
* file that was distributed with this source code.
|
* file that was distributed with this source code.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#import "NSData+ExtendedData.h"
|
#import "UIImage+ExtendedData.h"
|
||||||
#import <objc/runtime.h>
|
#import <objc/runtime.h>
|
||||||
|
|
||||||
@implementation NSData (ExtendedData)
|
@implementation UIImage (ExtendedData)
|
||||||
|
|
||||||
- (NSData *)sd_extendedData {
|
- (NSData *)sd_extendedData {
|
||||||
return objc_getAssociatedObject(self, @selector(sd_extendedData));
|
return objc_getAssociatedObject(self, @selector(sd_extendedData));
|
|
@ -46,6 +46,7 @@ FOUNDATION_EXPORT const unsigned char WebImageVersionString[];
|
||||||
#import <SDWebImage/UIImage+Metadata.h>
|
#import <SDWebImage/UIImage+Metadata.h>
|
||||||
#import <SDWebImage/UIImage+MultiFormat.h>
|
#import <SDWebImage/UIImage+MultiFormat.h>
|
||||||
#import <SDWebImage/UIImage+MemoryCacheCost.h>
|
#import <SDWebImage/UIImage+MemoryCacheCost.h>
|
||||||
|
#import <SDWebImage/UIImage+ExtendedData.h>
|
||||||
#import <SDWebImage/SDWebImageOperation.h>
|
#import <SDWebImage/SDWebImageOperation.h>
|
||||||
#import <SDWebImage/SDWebImageDownloader.h>
|
#import <SDWebImage/SDWebImageDownloader.h>
|
||||||
#import <SDWebImage/SDWebImageTransition.h>
|
#import <SDWebImage/SDWebImageTransition.h>
|
||||||
|
@ -67,7 +68,6 @@ FOUNDATION_EXPORT const unsigned char WebImageVersionString[];
|
||||||
#import <SDWebImage/UIImage+GIF.h>
|
#import <SDWebImage/UIImage+GIF.h>
|
||||||
#import <SDWebImage/UIImage+ForceDecode.h>
|
#import <SDWebImage/UIImage+ForceDecode.h>
|
||||||
#import <SDWebImage/NSData+ImageContentType.h>
|
#import <SDWebImage/NSData+ImageContentType.h>
|
||||||
#import <SDWebImage/NSData+ExtendedData.h>
|
|
||||||
#import <SDWebImage/SDWebImageDefine.h>
|
#import <SDWebImage/SDWebImageDefine.h>
|
||||||
#import <SDWebImage/SDWebImageError.h>
|
#import <SDWebImage/SDWebImageError.h>
|
||||||
#import <SDWebImage/SDWebImageOptionsProcessor.h>
|
#import <SDWebImage/SDWebImageOptionsProcessor.h>
|
||||||
|
|
Loading…
Reference in New Issue