gpt4 book ai didi

swift - 如何清除 AlamofireImage setImageWithURL 缓存

转载 作者:IT王子 更新时间:2023-10-29 05:33:03 29 4
gpt4 key购买 nike

我在我的项目中经常使用 AlamofireImage,我使用

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)
}

目前只能在master分支上通过这种方式清除URLCache。我刚推了f35e4748它允许访问 ImageDownloader 中的底层 sessionManager。这在实际版本中尚不可用,但应该在本周某个时候出现。

关于swift - 如何清除 AlamofireImage setImageWithURL 缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33467263/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com