SDWebImageManager类说明


继承于: 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。但是又觉得没有必要,现在的手机用着很合适,觉得可以再战一年的。为何要年年换新机呢!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容