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);