基于SDWebImage
封装一个专用于批量下载图片资源的类
提供两个类方法,支持批量下载一组图片资源并根据imageURL
读取对应的UIImage
对象
SDWebImage
提供了一个类SDWebImagePrefetcher
专门用于根据图片地址数组批量下载图片资源并缓存。
/*
* 批量下载图片资源
* imageURLs 图片地址数组 成员为String类型
*/
+ (void)downloadImagesWithURLs:(NSArray <NSString *> *)imageURLs {
NSMutableArray *prefetchURLs = [NSMutableArray new];
for (NSString *urlStr in imageURLs) {
NSURL *url = [NSURL URLWithString:urlStr];
if (url) {
[prefetchURLs addObject:url];
}
}
[[SDWebImagePrefetcher sharedImagePrefetcher] prefetchURLs:prefetchURLs];
}
downloadImagesWithURLs:
帮助我们实现了NSString
转换NSURL
并调用SDWebImagePrefetcher
批量下载图片两个步骤。
通过SDWebImagePrefetcher
下载的图片会与其他通过SDWebImage
下载的图片一并通过SDImageCache
管理缓存在Library\Caches\default\com.hackemist.SDWebImageCache.default
文件夹下,想要方便的获取批量下载的下来的图片资源可以通过SDImageCache
获取。
/*
* 根据图片地址获取图片
* imageURL 单个图片地址
*/
+ (UIImage *)imageForURL:(NSString *)imageURL {
NSURL *url = [NSURL URLWithString:imageURL];
NSString *key = [[SDWebImageManager sharedManager] cacheKeyForURL:url];
UIImage *image = [[SDImageCache sharedImageCache] imageFromCacheForKey:key];
return image;
}
imageForURL:
帮助我们实现了通过url转换cacheKey,再通过cacheKey读取缓存图片的流程。