我意识到有一个强制刷新的选项,但我正在寻找一种仍然可以缓存图像并且不必每次都从网络加载它的解决方案。
目前,如果我尝试使用相同的 URL 设置新图像,它只会显示已缓存的前一个图像,并且不会覆盖新的 url。
我意识到有一个强制刷新的选项,但我正在寻找一种仍然可以缓存图像并且不必每次都从网络加载它的解决方案。
目前,如果我尝试使用相同的 URL 设置新图像,它只会显示已缓存的前一个图像,并且不会覆盖新的 url。
找到了我自己的解决方案,尽管它可能不是最好的方法。
首先,当我更新图像时,我会更改公共变量以反映这一点。然后我检查图像是否被缓存,如果是则将其删除。
import Kingfisher
if self.imageHasUpdated {
if ImageCache.default.isImageCached(forKey: image.absoluteString).cached {
print("Image is cached")
ImageCache.default.removeImage(forKey: image.absoluteString)
self.imageHasUpdated = false
}
}
最后,我照常更新图像。
imageView.kf.setImage(with: imageURL, placeholder: nil, options: nil)