Replaces #1398 Allow to customise cache and image downloader instances used with SDWebImageManager - added a new initializer (`initWithCache:downloader:`)

This commit is contained in:
Bogdan Poplauschi 2016-05-30 07:31:01 +03:00
parent 795832aadc
commit 9112170ea3
2 changed files with 14 additions and 6 deletions

View File

@ -181,6 +181,12 @@ SDWebImageManager *manager = [SDWebImageManager sharedManager];
*/ */
+ (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. * Downloads the image at the given URL if not present in cache or return the cached version otherwise.
* *

View File

@ -38,19 +38,21 @@
} }
- (instancetype)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])) { if ((self = [super init])) {
_imageCache = [self createCache]; _imageCache = cache;
_imageDownloader = [SDWebImageDownloader sharedDownloader]; _imageDownloader = downloader;
_failedURLs = [NSMutableSet new]; _failedURLs = [NSMutableSet new];
_runningOperations = [NSMutableArray new]; _runningOperations = [NSMutableArray new];
} }
return self; return self;
} }
- (SDImageCache *)createCache {
return [SDImageCache sharedImageCache];
}
- (NSString *)cacheKeyForURL:(NSURL *)url { - (NSString *)cacheKeyForURL:(NSURL *)url {
if (self.cacheKeyFilter) { if (self.cacheKeyFilter) {
return self.cacheKeyFilter(url); return self.cacheKeyFilter(url);