原始碼閱讀:SDWebImage(十)——SDImageCacheConfig

堯少羽發表於2018-06-22

該文章閱讀的SDWebImage的版本為4.3.3。

這個類是圖片快取的配置類,儲存圖片快取的配置或選項。

1.屬性

/**
 是否解壓
 預設是YES,解壓可以提高效能,但會佔用大量記憶體;如果由於記憶體消耗過多而導致崩潰,就設定為NO。
 */
@property (assign, nonatomic) BOOL shouldDecompressImages;
複製程式碼
/**
 是否禁用iCloud備份
 預設是YES
 */
@property (assign, nonatomic) BOOL shouldDisableiCloud;
複製程式碼
/**
 是否使用記憶體快取
 預設是YES
 */
@property (assign, nonatomic) BOOL shouldCacheImagesInMemory;
複製程式碼
/**
 從磁碟讀取快取時的讀取選項
 預設為0,但是可以設定為“NSDataReadingMappedIfSafe”以提高效能
 */
@property (assign, nonatomic) NSDataReadingOptions diskCacheReadingOptions;
複製程式碼
/**
 將快取寫入磁碟時的寫入選項
 預設為`NSDataWritingAtomic`,但是可以設定為“NSDataWritingWithoutOverwriting”以防止覆蓋現有檔案
 */
@property (assign, nonatomic) NSDataWritingOptions diskCacheWritingOptions;
複製程式碼
/**
 在快取中保留影像的最長時間,以秒為單位
 */
@property (assign, nonatomic) NSInteger maxCacheAge;
複製程式碼
/**
 最大快取大小,以位元組為單位
 */
@property (assign, nonatomic) NSUInteger maxCacheSize;
複製程式碼

2.私有靜態變數

/**
 定義了預設最長快取時間,一個周
 */
static const NSInteger kDefaultCacheMaxCacheAge = 60 * 60 * 24 * 7; 
複製程式碼

3.方法

- (instancetype)init {
    if (self = [super init]) {
        // 在初始化方法中設定屬性的值
        _shouldDecompressImages = YES;
        _shouldDisableiCloud = YES;
        _shouldCacheImagesInMemory = YES;
        _diskCacheReadingOptions = 0;
        _diskCacheWritingOptions = NSDataWritingAtomic;
        _maxCacheAge = kDefaultCacheMaxCacheAge;
        _maxCacheSize = 0;
    }
    return self;
}
複製程式碼

原始碼閱讀系列:SDWebImage

原始碼閱讀:SDWebImage(一)——從使用入手

原始碼閱讀:SDWebImage(二)——SDWebImageCompat

原始碼閱讀:SDWebImage(三)——NSData+ImageContentType

原始碼閱讀:SDWebImage(四)——SDWebImageCoder

原始碼閱讀:SDWebImage(五)——SDWebImageFrame

原始碼閱讀:SDWebImage(六)——SDWebImageCoderHelper

原始碼閱讀:SDWebImage(七)——SDWebImageImageIOCoder

原始碼閱讀:SDWebImage(八)——SDWebImageGIFCoder

原始碼閱讀:SDWebImage(九)——SDWebImageCodersManager

原始碼閱讀:SDWebImage(十)——SDImageCacheConfig

原始碼閱讀:SDWebImage(十一)——SDImageCache

原始碼閱讀:SDWebImage(十二)——SDWebImageDownloaderOperation

原始碼閱讀:SDWebImage(十三)——SDWebImageDownloader

原始碼閱讀:SDWebImage(十四)——SDWebImageManager

原始碼閱讀:SDWebImage(十五)——SDWebImagePrefetcher

原始碼閱讀:SDWebImage(十六)——SDWebImageTransition

原始碼閱讀:SDWebImage(十七)——UIView+WebCacheOperation

原始碼閱讀:SDWebImage(十八)——UIView+WebCache

原始碼閱讀:SDWebImage(十九)——UIImage+ForceDecode/UIImage+GIF/UIImage+MultiFormat

原始碼閱讀:SDWebImage(二十)——UIButton+WebCache

原始碼閱讀:SDWebImage(二十一)——UIImageView+WebCache/UIImageView+HighlightedWebCache

相關文章