代码之家  ›  专栏  ›  技术社区  ›  Paradox_Gods

使用翠鸟如何缓存保持相同URL的新图像?

  •  -1
  • Paradox_Gods  · 技术社区  · 7 年前

    我意识到有一个强制刷新的选项,但我正在寻找一个解决方案,它仍然会缓存图像,而不必每次都从网络加载。

    当前,如果我尝试使用相同的URL设置新图像,它只会显示已缓存的前一个图像,而不会覆盖新的URL。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Paradox_Gods    7 年前

    找到了自己的解决方案,尽管这可能不是最好的方法。

    首先,当我更新了一个图像后,我更改了一个公共变量来反映这一点。然后检查图像是否已缓存,如果已缓存,则将其删除。

    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)