Skip to content

ileafly/ZYImageDownloader

Repository files navigation

ZYImageDownloader

目的

基于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读取缓存图片的流程。

About

基于SDWebImage的图片批量下载功能封装

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published