SDImageCache
这个库提供了一个类别UIImageView支持远程图片来自网络。它提供了:UIImageView类别添加web图像和缓存管理可可触摸框架异步图片下载器异步内存+磁盘映像缓存自动缓存过期处理GIF动画支持WebP格式支持一个背景图像解压缩保证相同的URL不会下载几次保证伪url不会一次又一次重试保证主线程不会被阻塞.
SDImageCache Class Reference
Tasks
1. shouldDecompressImages property 应该解压 图像属性
@property (assign, nonatomic) BOOL shouldDecompressImages
解压图像被下载和缓存可以提高性能,但可以消耗很多内存。默认值为YES。将这个参数设置为不如果你正在经历一个崩溃由于过度消耗内存。
2. shouldDisableiCloud property 应该禁用iCloud
@property (assign, nonatomic) BOOL shouldDisableiCloud
禁用iCloud备份(默认值为YES)
3. shouldCacheImagesInMemory property 应该在内存中缓存图像属性
@property (assign, nonatomic) BOOL shouldCacheImagesInMemory
使用内存缓存(默认值为YES)
4. maxMemoryCost property 最大内存成本属性
@property (assign, nonatomic) NSUInteger maxMemoryCost
最大的“总成本”内存图像缓存。成本函数是保存在内存的像素数量。
5. maxMemoryCountLimit property 最大内存数限制的属性
@property (assign, nonatomic) NSUInteger maxMemoryCountLimit
对象缓存应持有的最大数量。
6.maxCacheAge property 最大缓存年龄属性
@property (assign, nonatomic) NSInteger maxCacheAge
时间的最大长度保持图像缓存中,在几秒钟内
7. maxCacheSize property 最大缓存大小属性
@property (assign, nonatomic) NSUInteger maxCacheSize
缓存的最大大小,以字节为单位。
8. + sharedImageCache 共享图像缓存
+ (SDImageCache *)sharedImageCache
返回全局共享缓存实例
9. – initWithNamespace: 名称空间初始化
- (id)initWithNamespace:(NSString *)ns
初始化一个新的缓存存储与一个特定的名称空间
ns:要使用的名称空间数据缓存
10. – initWithNamespace:diskCacheDirectory: 名称空间初始化:磁盘高速缓存目录
- (id)initWithNamespace:(NSString *)ns diskCacheDirectory:(NSString *)directory
初始化一个新的缓存存储与一个特定的名称空间和目录
ns:要使用的名称空间数据缓存 directory: 目录缓存的磁盘映像
11. – makeDiskCachePath: 让磁盘高速缓存路径
- (NSString *)makeDiskCachePath:(NSString *)fullNamespace
12. – addReadOnlyCachePath: 添加只读缓存路径
- (void)addReadOnlyCachePath:(NSString *)path
添加一个只读缓存路径搜索图片,所以整个时间段SDImageCache有用如果你想包预装图片与你的应用程序
path:的路径使用只读缓存路径
13. – storeImage:forKey: 存储图片:关键:
- (void)storeImage:(UIImage *)image forKey:(NSString *)key
一个图像存储到内存和磁盘缓存在给定的关键。image:图像存储.key独特的图像缓存键,通常它的形象绝对URL.
14. – storeImage:forKey:toDisk: 存储图片:重新计算
- (void)storeImage:(UIImage *)image forKey:(NSString *)key toDisk:(BOOL)toDisk
存储一个图像到内存中,在给定的关键选择磁盘高速缓存。
toDisk:存储到磁盘缓存如果是形象.
15. – storeImage:recalculateFromImage:imageData:forKey:toDisk: 存储图片:从图片:重新计算图像数据:关键:磁盘
- (void)storeImage:(UIImage *)image recalculateFromImage:(BOOL)recalculate imageData:(NSData *)imageData forKey:(NSString *)key toDisk:(BOOL)toDisk
存储一个图像到内存中,在给定的关键选择磁盘高速缓存。
recalculate重新计算:BOOL表示如果可以使用.
imageData:图像数据由服务器返回的,这表示将用于磁盘存储,而不是给定的图像对象转换成一个存储/压缩格式为了节省质量和CPU
key:独特的图像缓存键.通常它的形象绝对URL.
toDisk:存储到磁盘缓存如果是形象
16. – queryDiskCacheForKey:done: 查询磁盘高速缓存关键:完成
- (NSOperation *)queryDiskCacheForKey:(NSString *)key done:(SDWebImageQueryCompletedBlock)doneBlock
异步查询磁盘高速缓存。key:唯一密钥用于存储想要的图像.
17. – imageFromMemoryCacheForKey: 图像内存缓存的关键
- (UIImage *)imageFromMemoryCacheForKey:(NSString *)key
查询内存缓存同步
18. – imageFromDiskCacheForKey:图像从磁盘缓存的关键
- (UIImage *)imageFromDiskCacheForKey:(NSString *)key
查询磁盘缓存同步后检查内存缓存。
19. – removeImageForKey:删除图像关键
- (void)removeImageForKey:(NSString *)key
将图像从内存和磁盘缓存同步. key:独特的图像缓存键.
20.– clearDiskOnCompletion: 清除磁盘完成:
- (void)clearDiskOnCompletion:(SDWebImageNoParamsBlock)completion
清除所有磁盘缓存图像。非阻塞方法立即返回。completion:这一块应该执行缓存过期后完成(可选).
21. – removeImageForKey:withCompletion:删除图像关键:完成
- (void)removeImageForKey:(NSString *)key withCompletion:(SDWebImageNoParamsBlock)completion
将图像从异步内存和磁盘缓存
22. – removeImageForKey:fromDisk:删除图像关键:从磁盘
- (void)removeImageForKey:(NSString *)key fromDisk:(BOOL)fromDisk
将图像从内存和异步选择磁盘高速缓存.fromDisk:如果是的也从磁盘删除缓存条目.
23. – removeImageForKey:fromDisk:withCompletion:删除图像关键:从磁盘:完成
- (void)removeImageForKey:(NSString *)key fromDisk:(BOOL)fromDisk withCompletion:(SDWebImageNoParamsBlock)completion
将图像从内存和异步选择磁盘高速缓存.completion:这一块应该执行后,图像被删除(可选).
24. – clearMemory 清除所有内存缓存图像
- (void)clearMemory
25. – clearDisk 清除磁盘
- (void)clearDisk
清除所有磁盘缓存图像
26. – cleanDiskWithCompletionBlock: 清除的磁盘块完成
- (void)clearDiskOnCompletion:(SDWebImageNoParamsBlock)completion
清除所有磁盘缓存图像。非阻塞方法立即返回。
27. – getSize 计算大小
- (NSUInteger)getSize
磁盘高速缓存使用的大小
28. – getDiskCount 磁盘缓存的图片数量
- (NSUInteger)getDiskCount
29. – calculateSizeWithCompletionBlock: 计算完成块大小
- (void)calculateSizeWithCompletionBlock:(SDWebImageCalculateSizeBlock)completionBlock
异步计算磁盘高速缓存的大小。
30. – diskImageExistsWithKey:completion: 磁盘映像的存在与关键:完成
- (void)diskImageExistsWithKey:(NSString *)key completion:(SDWebImageCheckCacheCompletionBlock)completionBlock
异步检查图像是否存在于磁盘高速缓存(不加载图片)注意:完成块将总是主队列上执行
completionBlock:检查完成后执行。
31. – diskImageExistsWithKey: 磁盘映像与主要存在:
- (BOOL)diskImageExistsWithKey:(NSString *)key
检查图像是否存在于磁盘高速缓存(不加载图片),返回值是的如果图像存在给定的关键.
32. – cachePathForKey:inPath:缓存路径为关键:路径:
- (NSString *)cachePathForKey:(NSString *)key inPath:(NSString *)path
得到一定的缓存路径密钥(需要缓存路径根文件夹).path:缓存路径的根文件夹
33. – defaultCachePathForKey: 默认缓存路径为关键
- (NSString *)defaultCachePathForKey:(NSString *)key
得到某些关键的默认缓存路径,返回值默认的缓存路径;
SDWebImageDownloader
Tasks
1. shouldDecompressImages property 应该解压图像的属性
@property (assign, nonatomic) BOOL shouldDecompressImages
解压图像被下载和缓存可以提高性能,但可以消耗很多内存。默认值为YES。将这个参数设置为不如果你正在经历一个崩溃由于过度消耗内存。
2. maxConcurrentDownloads property
@property (assign, nonatomic) NSInteger maxConcurrentDownloads
3. currentDownloadCount property 当前下载数
@property (readonly, nonatomic) NSUInteger currentDownloadCount
显示当前的下载数量仍然需要下载
4. downloadTimeout property 下载超时
@property (assign, nonatomic) NSTimeInterval downloadTimeout
超时值(以秒为单位)下载操作。默认值:15.0。
5. executionOrder property
@property (assign, nonatomic) SDWebImageDownloaderExecutionOrder executionOrder
改变执行顺序下载操作。默认值是SDWebImageDownloaderFIFOExecutionOrder。
6. + sharedDownloader 共享下载器
+ (SDWebImageDownloader *)sharedDownloader
讨论:单例方法
返回:共享实例返回值全局共享下载类的实例单例方法
返回:共享实例返回值全局共享下载类的实例
7. urlCredential property url凭据
@property (strong, nonatomic) NSURLCredential *urlCredential
设置默认URL凭证请求操作的设置。
8. username property 用户名
@property (strong, nonatomic) NSString *username
设置用户名
9. password property 密码
@property (strong, nonatomic) NSString *password
设置密码
10. headersFilter property
@property (nonatomic, copy) SDWebImageDownloaderHeadersFilterBlock headersFilter
设置过滤器来选择HTTP请求头信息下载映像。这个街区为每个下载图像请求时,将调用返回NSDictionary将被用作在相应的HTTP请求头。
11. – setValue:forHTTPHeaderField:
- (void)setValue:(NSString *)value forHTTPHeaderField:(NSString *)field
设置一个值一个HTTP头附加到每个HTTP请求下载。
value:头字段的值。使用零值去除头。
field:头字段的名称。
12. – valueForHTTPHeaderField:
- (NSString *)valueForHTTPHeaderField:(NSString *)field
返回指定的HTTP报头字段的值。
返回值与头字段相关联的字段值,或者零如果没有相应的头字段。
13. – setOperationClass:设置操作类
- (void)setOperationClass:(Class)operationClass
集的一个子类SDWebImageDownloaderOperation作为默认NSOperation每次使用SDWebImage构造一个请求操作下载一个图像。
operationClass:SDWebImageDownloaderOperation设置为默认的子类。通过nil SDWebImageDownloaderOperation将恢复。
14. – downloadImageWithURL:options:progress:completed:
- (id)downloadImageWithURL:(NSURL *)url options:(SDWebImageDownloaderOptions)options progress:(SDWebImageDownloaderProgressBlock)progressBlock completed:(SDWebImageDownloaderCompletedBlock)completedBlock
创建一个SDWebImageDownloader异步下载实例与给定的URL委托完成图像时就通知下载或已经发生一个错误。
参数:url:图片下载的URL
options:这个选项用于下载
progressBlock(进展块):一块反复调用图片下载
completedBlock(完成块):一块叫一旦下载完成。如果下载成功了,图像参数设置,在出错的情况下,错误的参数设置错误。最后一个参数总是是的如果SDWebImageDownloaderProgressiveDownload没有使用。SDWebImageDownloaderProgressiveDownload选项,这与局部图像块反复调用对象之前,完成参数设置为不被称为最后一次完整图像,完成参数设置为YES。在错误的情况下,完成参数总是没错的。
返回值一个可删除的SDWebImageOperation
15. – setSuspended: 设置暂停
- (void)setSuspended:(BOOL)suspended
设置下载队列悬浮状态
SDWebImageDownloaderOperation
Tasks
1. request property 请求
@property (strong, nonatomic, readonly) NSURLRequest *request
使用的请求操作的连接。
2. shouldDecompressImages property 应该解压图像
@property (assign, nonatomic) BOOL shouldDecompressImages
3. shouldUseCredentialStorage property
@property (nonatomic, assign) BOOL shouldUseCredentialStorage
URL连接是否应该咨询认证的证书存储连接。是的默认情况下。这是返回的值NSURLConnectionDelegate方法-connectionShouldUseCredentialStorage:。
4. credential property 凭证
@property (nonatomic, strong) NSURLCredential *credential
连接的凭据用于身份验证的挑战:didReceiveAuthenticationChallenge:。这将覆盖任何共享凭证存在的用户名或密码请求URL,如果存在。
5. options property 选项
@property (assign, nonatomic, readonly) SDWebImageDownloaderOptions options
的SDWebImageDownloaderOptions接收器。
6. expectedSize property 预期的大小
@property (assign, nonatomic) NSInteger expectedSize
预期的数据的大小。
7. response property
@property (strong, nonatomic) NSURLResponse *response
返回的响应操作的连接。
8. – initWithRequest:options:progress:completed:cancelled:
- (id)initWithRequest:(NSURLRequest *)request options:(SDWebImageDownloaderOptions)options progress:(SDWebImageDownloaderProgressBlock)progressBlock completed:(SDWebImageDownloaderCompletedBlock)completedBlock cancelled:(SDWebImageNoParamsBlock)cancelBlock
初始化一个SDWebImageDownloaderOperation对象注意:进展块背景上执行队列中注意:完成块主队列上执行成功。如果发现错误,有机会阻止将在背景执行队列中
request:URL请求
options:下载选项
progressBlock:数据块时执行新块到来
completedBlock:块下载完成后执行
cancelBlock:块执行如果下载(操作)取消了返回值初始化实例
SDWebImageManager Class
概述背后的SDWebImageManager是类UIImageView + WebCache类别,喜欢。与异步下载器(SDWebImageDownloader)图像缓存存储(SDImageCache)。您可以直接使用这个类受益于web图像下载缓存比在另一个上下文UIView。
Tasks
1. delegate property 代理
@property (weak, nonatomic) id<SDWebImageManagerDelegate>delegate
2. imageCache property 图像缓存
@property (strong, nonatomic, readonly) SDImageCache *imageCache
3. imageDownloader property 图片下载器
@property (strong, nonatomic, readonly) SDWebImageDownloader *imageDownloader
4. cacheKeyFilter property 缓存键过滤
- (NSString *)cacheKeyForURL:(NSURL *)url
返回给定URL缓存键
5. + sharedManager 共享
+ (SDWebImageManager *)sharedManager
返回全球SDWebImageManager实例。返回值SDWebImageManager共享实例
6. – downloadImageWithURL:options:progress:completed:
- (id)downloadImageWithURL:(NSURL *)url options:(SDWebImageOptions)options progress:(SDWebImageDownloaderProgressBlock)progressBlock completed:(SDWebImageCompletionWithFinishedBlock)completedBlock
在给定的URL下载图像如果没有出现在缓存或返回缓存的版本。
options:一个面具来指定选项用于此请求.
progressBlock:一块叫做图像下载
completedBlock:一块时调用操作已经完成。这个参数是必需的。这一块没有返回值,以请求的用户界面图像作为第一个参数。图像参数是零在出错的情况下,第二个参数可以包含一个NSError。第三个参数是一个SDImageCacheType枚举指示如果图像从本地缓存或内存缓存中检索或从网络。最后一个参数设置没有SDWebImageProgressiveDownload时选择使用和下载图像。这个街区因此被称为多次与部分图像。当图像完全下载,块被称为最后一次完整图像和最后一个参数设置为YES
返回值返回一个NSObject符合SDWebImageOperation。应该SDWebImageDownloaderOper的实例
7. – saveImageToCache:forURL:
- (void)saveImageToCache:(UIImage *)image forURL:(NSURL *)url
保存图像缓存对于给定的URL
8. – cancelAll 取消所有
- (void)cancelAll
取消所有当前操作
9. – isRunning
- (BOOL)isRunning
检查一个或多个操作运行
10. – cachedImageExistsForURL: 存在缓存图像URL
- (BOOL)cachedImageExistsForURL:(NSURL *)url
检查图像是否已经被缓存
11. – diskImageExistsForURL: 存在磁盘映像的URL
- (BOOL)diskImageExistsForURL:(NSURL *)url
检查图像是否已经缓存的磁盘上
返回:如果图像已经缓存(磁盘)
12. – cachedImageExistsForURL:completion: 缓存图像存在ForURL:完成
- (void)cachedImageExistsForURL:(NSURL *)url completion:(SDWebImageCheckCacheCompletionBlock)completionBlock
异步检查图像是否已经被缓存注意:完成块总是主队列上执行参数
url:图像url
completionBlock块检查完成后执行
13. – diskImageExistsForURL:completion:
- (void)diskImageExistsForURL:(NSURL *)url completion:(SDWebImageCheckCacheCompletionBlock)completionBlock
异步检查图像是否已经缓存的磁盘上注意:完成块总是主队列上执行
completionBlock块检查完成后执行
14. – cacheKeyForURL: 为URL缓存键
- (NSString *)cacheKeyForURL:(NSURL *)url
返回给定URL缓存键
url:图像url
返回值如果图像已经缓存
Deprecated Methods 弃用的方法
1. – downloadWithURL:options:progress:completed:
- (id)downloadImageWithURL:(NSURL *)url options:(SDWebImageOptions)options progress:(SDWebImageDownloaderProgressBlock)progressBlock completed:(SDWebImageCompletionWithFinishedBlock)completedBlock
在给定的URL下载图像如果没有出现在缓存或返回缓存的版本。
options:一个面具来指定选项用于此请求.
progressBlock:一块叫做图像下载
completedBlock:一块时调用操作已经完成。这个参数是必需的。这一块没有返回值,以请求的用户界面图像作为第一个参数。图像参数是零在出错的情况下,第二个参数可以包含一个NSError。第三个参数是一个SDImageCacheType枚举指示如果图像从本地缓存或内存缓存中检索或从网络。最后一个参数设置没有SDWebImageProgressiveDownload时选择使用和下载图像。这个街区因此被称为多次与部分图像。当图像完全下载,块被称为最后一次完整图像和最后一个参数设置为YES
返回值返回一个NSObject符合SDWebImageOperation。应该SDWebImageDownloaderOper的实例
SDWebImagePrefetcher
Tasks
1.manager property
@property (strong, nonatomic, readonly) SDWebImageManager *manager
网络图片管理器
2. maxConcurrentDownloads property 最大并发下载
@property (nonatomic, assign) NSUInteger maxConcurrentDownloads
最大数量的url来同时预取。默认为3。
3. options property 选项
@property (nonatomic, assign) SDWebImageOptions options
SDWebImageOptions prefetcher。默认为SDWebImageLowPriority。
4. prefetcherQueue property
@property (nonatomic, assign) dispatch_queue_t prefetcherQueue
队列Prefetcher选项。默认为主要的队列。
5. delegate property
@property (weak, nonatomic) id<SDWebImagePrefetcherDelegate>delegate
6. + sharedImagePrefetcher
+ (SDWebImagePrefetcher *)sharedImagePrefetcher
返回全球形象prefetcher实例。
7. – initWithImageManager:
- (id)initWithImageManager:(SDWebImageManager *)manager
可以与任意图像实例化一个prefetcher manager。
8. – prefetchURLs:
- (void)prefetchURLs:(NSArray *)urls
指定的url列表让SDWebImagePrefetcher队列预取,目前一个图片下载,跳过图片下载失败,继续下一个图像列表中
9. – prefetchURLs:progress:completed:
- (void)prefetchURLs:(NSArray *)urls progress:(SDWebImagePrefetcherProgressBlock)progressBlock completed:(SDWebImagePrefetcherCompletionBlock)completionBlock
指定的url列表让SDWebImagePrefetcher队列预取,目前一个图片下载,跳过图片下载失败,继续下一个图像列表中
progressBlock:块被称为当进度更新;第一个参数是(成功与否)完成请求的数量,第二个参数是图像最初请求的总数预取的
completionBlock:块被称为预取完成时第一个参数(成功与否)完成请求的数量,第二个参数是跳过请求的数量
10. – cancelPrefetching
- (void)cancelPrefetching
删除并取消排队列表