继承于: NSObject
声明处: SDWebImageManger.h
概述
- SDWebImageManager是类似于UIImageView+WebCache类别或相似的类。
- 它把异步下载器(SDWebImageDownloader)和图片缓存存储连接起来。
- 你可以使用这个类直接从网页图片下载并缓存在另一个上下文而不是在UIView.*中。
- 这有一个简单的样例怎么去使用SDWeImageManager.*
SDWebImageManager manager = [SDWebImageManager sharedManager];
[manager loadImageWithURL:imageURL options:0 progress:nil completed:^(UIImage * _Nullable image, NSData * _Nullable data, NSError * _Nullable error, SDImageCacheType cacheType, BOOL finished, NSURL * _Nullable imageURL) {
if(image)
{
// Do something with image
}
}];
任务
-
delegate
属性 -
imageCache
属性 -
imageDownloader
属性 -
cancheKeyFilter
属性 + sharedManager
- initWithCache:downloader:
- loadImageWithURL:options:progress:competed:
- saveImageToCache:forURL:
cancelAll
isRunning
cachedImageExistsForURL:completion:
diskImageExistsForURL:completion:
cacheKeyForURL:
属性
cachekeyFilter
@property (nonatomic, copy, nullable) SDWebImageCacheKeyFilterBlock cacheKeyFilter
讨论
缓存过滤器是一个块,每次使用SDWebImageManager转化一个URL为一个缓存key。这个能动态的移除一部分图片URL。以下的例子为在应用代理设置一个过滤器,在作为一个缓存key使用之前从URL中移除任务查询字符串。
[[SDWebImageManager sharedManager] setCacheKeyFilter:^(NSURL *url)
{
url = [[NSURL alloc] initWithScheme:url.scheme host:url.host path:url.path];
return [url absoluteString];
}];
声明处
SDWebImageManager.h
delegate
@property (weak, nonatomic, nullable) id<SDWebImageManagerDelegate> delegate
imageCache
@property (strong, nonatomic, readonly, nullable) SDImageCache *imageCache
imageDownloader
@property (strong, nonatomic, readonly, nullable) SDWebImageDownloader *imageDownloader
类方法
sharedManager
+ (nonnull instancetype)sharedManager
讨论
返回全局SDWebImageManager实例。
返回值
SDWebImageManager共享实例。
声明处
SDWebImageManager.h
实例方法
cacheKeyForURL:
- (nullable NSString *)cacheKeyForURL:(nullable NSURL *)url
讨论
返回提供的URL的一个缓存Key。
声明处
SDWebImageManager.h
cachedImageExistsForURL:completion:
- (void)cachedImageExistsForURL:(nullable NSURL *)url completion:(nullable SDWebImageCheckCacheCompletionBlock)completionBlock
讨论
异步检查图片是否已经缓存。
注意: 完成块已经在主线程上执行。
参数
url
图片url
completionBlock
检查完成时执行这个块。
声明处
SDWebImageManager.h
cancelAll
- (void)cancelAll
讨论
取消所有当前的操作。
声明处
SDWebImageManager.h
diskImageExistsForURL:completion:
- (void)diskImageExistsForURL:(nullable NSURL *)url completion:(nullable SDWebImageCheckCacheCompletionBlock)completionBlock
讨论
异步检查图片是否已经缓存在硬盘,不包括内存缓存。
注意: 完成块已经在主线程上执行。
参数
url
图片url
completionBlock
检查完成时执行这个块。
声明处
SDWebImageManager.h
initWithCache:downloader:
- (nonnull instancetype)initWithCache:(nonnull SDImageCache *)cache downloader:(nonnull SDWebImageDownloader *)downloader
讨论
允许指定缓存和图片下载器的实例使用图片管理器。
返回值
指定缓存和下载器的新SDWebImageManager实例。
声明处
SDWebImageManager.h
isRunning
- (BOOL)isRunning
讨论
检查一个或多个操作是否在运行。
声明处
SDWebImageManager.h
loadImageWithURL:options:progress:completed:
- (nullable id<SDWebImageOperation>)loadImageWithURL:(nullable NSURL *)url options:(SDWebImageOptions)options progress:(nullable SDWebImageDownloaderProgressBlock)progressBlock completed:(nullable SDInternalCompletionBlock)completedBlock
讨论
按给定的URL下载图片,如果没有在缓存则下载图片,否则返回缓存中的版本。
注意:进度块在后台队列执行。
参数
url
图片的url。
options
为该请求指定使用选项的掩码。
progressBlock
一个图片下载中调用的块。
completedBlock
一个操作已经完成后调用的块。
一个参数是必选项。
这个块没有返回值,有6个参数,第一个为请求的图片,第二个为NSData代表。一旦发生错误图片参数为nil,第三个参数将包含一个NSError值。
第四个参数是一个SDImageCacheType枚举,指明图片是从本地缓存恢复的,还是从内存缓存,还是从网络。
第五个参数当使用了SDWebImageProgressiveDownloader选项并且图片正在下载则设置为NO。这个块会根据部分图片将被重复调用。当图片下载完成,这个块根据完整的图片最后被调用一次。这个参数设置为YES。
最后参数是原始的图片URL。
返回值
返回一个遵照SDWebImageOperation的对象。应该为一个SDWebImageDownloaderOperation实例。
声明处
SDWebImageManager.h
saveImageToCache:forURL:
- (void)saveImageToCache:(nullable UIImage *)image forURL:(nullable NSURL *)url
讨论
保存给定URL的图片到缓存中。
参数
image
图像缓存。
url
图片URL。
声明处
SDWebImageManager.h
// END 最近一直在想着买一个iPhone 8 Plus。但是又觉得没有必要,现在的手机用着很合适,觉得可以再战一年的。为何要年年换新机呢!