如何在af_setImageWithURL完成后将图像放入AutoPurgingImageCache?

时间:2015-10-22 10:08:09

标签: ios image swift caching alamofire

我想将imageView.af_setImageWithURL(URL)与来自AlamofireImage AutoPurgingImageCache 一起使用。

如何通知af_setImageWithURL获取图像,以便将其放入缓存中?因为这是在背景中完成的。

我更喜欢这样的内容:imageView.af_imageFromCache(URL)如果图像已经存在于缓存中,则会将图像设置为缓存,或以其他方式下载异步,然后设置图像并将其保存在缓存中。

2 个答案:

答案 0 :(得分:4)

ImageDownloader使用的共享UIImageView已将图片自动放入AutoPurgingImageCache。每次使用imageView.af_setImageWithURL(URL)时,它都会尝试将图像从图像缓存中拉出(如果存在)。如果图像尚未在缓存中,它将在ImageDownloader实例上开始下载。

答案 1 :(得分:0)

SWIFT 4.0

设置' AutoPurgingImageCache'在Appdelegate中,以便我可以在任何类中访问它

var imageCache:AutoPurgingImageCache?

   imageCache = AutoPurgingImageCache(
        memoryCapacity: 100_000_000,
        preferredMemoryUsageAfterPurge: 60_000_000
    )

然后在我的服务类中设置图像

class func setImage(url : String,imageview:UIImageView) {

    let imageCache = appDelegate.imageCache!
    // Fetch
    if let cachedAvatar = imageCache.image(withIdentifier: url){
         imageview.image = cachedAvatar
    }else {

        Alamofire.request(url).responseImage { response in
            debugPrint(response)
            debugPrint(response.result)
            if let image = response.result.value {
                imageview.image = image
                // Add
                imageCache.add(image, withIdentifier: url)
            }
        }
    }
}