Parcourir la source

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

Bogdan Poplauschi il y a 9 ans
Parent
commit
86fc47bf7b
2 fichiers modifiés avec 15 ajouts et 7 suppressions
  1. 6 0
      SDWebImage/SDWebImageManager.h
  2. 9 7
      SDWebImage/SDWebImageManager.m

+ 6 - 0
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.
  *

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