我们可以将本地图像设置为SDWebImage的离线图像吗?

时间:2017-05-19 05:53:41

标签: ios swift sdwebimage

我正在使用

pod 'SDWebImage'

要在我的应用程序中下载图像,我发现所有图像都是在 “/ Library / Caches / com.bundlename.bundlename / com.alamofire.imagedownloader / fsCachedData” <下载的/ strong>有一些独特的名字。

我的应用程序具有离线支持,我已经为具有文件路径的图像管理了CoreData Entity(文件位于库缓存目录中),当我上传我的图像时,我的服务器将使用我的S3文件URL进行响应以进行下载。

因为我(上传文件的用户)已经有了一个图像文件但是SDWebImage不知道。所以它会再次下载文件。

任何建议如何管理它而不再重新下载相同的图像?我无法在我的数据库中保留本地路径,因为我的应用程序具有与多个设备同步的功能。

由于

1 个答案:

答案 0 :(得分:0)

我认为您可以为此目的使用SDImageCache。 示例代码:

NSArray<NSString*> *urls = @"aws s3 url here";
    [[SDImageCache sharedImageCache] diskImageExistsWithKey:urls[0] completion:^(BOOL isInCache) {
        if ( isInCache ) {
            [yourImage setImage:[[SDImageCache sharedImageCache] imageFromDiskCacheForKey:urls[0]]];
        } else {
            NSURL *url = [NSURL URLWithString:item.url];
            [yourImage sd_setImageWithURL:url completed:^(UIImage * _Nullable image, NSError * _Nullable error, SDImageCacheType cacheType, NSURL * _Nullable imageURL) {
                [[SDImageCache sharedImageCache] storeImage:image forKey:urls[0] toDisk:YES completion:^{

                }];
                [yourImage setImage:image];
            }];
        }
    }] ;