From 86fc47bf7b80bdfea49d39d9ad4d719bba90015c Mon Sep 17 00:00:00 2001 From: Bogdan Poplauschi Date: Mon, 30 May 2016 07:31:01 +0300 Subject: [PATCH] Replaces #1398 Allow to customise cache and image downloader instances used with SDWebImageManager - added a new initializer (`initWithCache:downloader:`) --- SDWebImage/SDWebImageManager.h | 6 ++++++ SDWebImage/SDWebImageManager.m | 16 +++++++++------- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/SDWebImage/SDWebImageManager.h b/SDWebImage/SDWebImageManager.h index 8750730..9848999 100644 --- a/SDWebImage/SDWebImageManager.h +++ b/SDWebImage/SDWebImageManager.h @@ -181,6 +181,12 @@ SDWebImageManager *manager = [SDWebImageManager sharedManager]; */ + (SDWebImageManager *)sharedManager; +/** + * Allows to specify instance of cache and image downloader used with image manager. + * @return new instance of `SDWebImageManager` with specified cache and downloader. + */ +- (instancetype)initWithCache:(SDImageCache *)cache downloader:(SDWebImageDownloader *)downloader; + /** * Downloads the image at the given URL if not present in cache or return the cached version otherwise. * diff --git a/SDWebImage/SDWebImageManager.m b/SDWebImage/SDWebImageManager.m index 91475c1..a905e93 100644 --- a/SDWebImage/SDWebImageManager.m +++ b/SDWebImage/SDWebImageManager.m @@ -37,20 +37,22 @@ return instance; } -- (id)init { +- (instancetype)init { + SDImageCache *cache = [SDImageCache sharedImageCache]; + SDWebImageDownloader *downloader = [SDWebImageDownloader sharedDownloader]; + return [self initWithCache:cache downloader:downloader]; +} + +- (instancetype)initWithCache:(SDImageCache *)cache downloader:(SDWebImageDownloader *)downloader { if ((self = [super init])) { - _imageCache = [self createCache]; - _imageDownloader = [SDWebImageDownloader sharedDownloader]; + _imageCache = cache; + _imageDownloader = downloader; _failedURLs = [NSMutableSet new]; _runningOperations = [NSMutableArray new]; } return self; } -- (SDImageCache *)createCache { - return [SDImageCache sharedImageCache]; -} - - (NSString *)cacheKeyForURL:(NSURL *)url { if (self.cacheKeyFilter) { return self.cacheKeyFilter(url);