加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift – 如何清除AlamofireImage setImageWithURL缓存

发布时间:2020-12-14 05:28:52 所属栏目:百科 来源:网络整理
导读:我在我的项目中使用Alamofire Image非常多,我使用 let URL = NSURL(string: "https://cdn.domain.com/profile/image.jpg")!imageView.af_setImageWithURL(URL) 从我的CDN获取图像.我做了一些测试但是如果我错了就纠正我,这似乎将下载的图像存储到缓存中.我的
我在我的项目中使用Alamofire Image非常多,我使用
let URL = NSURL(string: "https://cdn.domain.com/profile/image.jpg")!
imageView.af_setImageWithURL(URL)

从我的CDN获取图像.我做了一些测试但是如果我错了就纠正我,这似乎将下载的图像存储到缓存中.我的测试包括下载5mb图像.第一次花了大约20秒,第二次是瞬间.

我想知道的是如何清除特定URL /图像的缓存并重新下载图像?

比如说我更新用户个人资料照片.图像名称/ URL将完全相同,但我知道当用户从其库或相机中选择新图像时,图像会发生变化.我知道图像已成功上传到CDN,因为我可以直接在CDN上看到文件夹中的新图像.

您需要从内存缓存以及磁盘缓存中删除映像.你可以这样做:
func clearImageFromCache() {
    let URL = NSURL(string: "https://cdn.domain.com/profile/image.jpg")!
    let URLRequest = NSURLRequest(URL: URL)

    let imageDownloader = UIImageView.af_sharedImageDownloader

    // Clear the URLRequest from the in-memory cache
    imageDownloader.imageCache?.removeImageForRequest(URLRequest,withAdditionalIdentifier: nil)

    // Clear the URLRequest from the on-disk cache
    imageDownloader.sessionManager.session.configuration.URLCache?.removeCachedResponseForRequest(URLRequest)
}

目前,URLCache只能在主分支上以这种方式清除.我刚推了f35e4748,它允许访问ImageDownloader中的底层sessionManager.目前尚未在实际版本中提供,但应该在本周的某个时间.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读