我正在构建一个基本的社交应用程序,其中包含用户和每个人都有个人资料图片我使用Kingfisher加载他们的个人资料图片,其中包含与其userId相关的网址。
例如:www.myapp.com/users/user24932.jpg
在第一次加载时,它们加载正常,但问题是图像也被缓存。因此,如果一个人从网站更改个人资料图片,iOS应用程序仍然从缓存中获取相同的图像,因为网址仍然相同。
但我也不想每次都加载个人资料图片。
在这种情况下如何处理缓存?
答案 0 :(得分:2)
获取API服务版本,说明配置文件已更改。 因此,对于自上次(使用时间戳)以来的新配置文件pic,它应该返回1,否则为0。
如果您获得1个新的个人资料照片并替换缓存的照片。
因此,您的新服务将包含布尔 标志和时间戳。
答案 1 :(得分:0)
我使用以下方法来解决此问题。这样,它将缓存的图像设置为占位符,并且仅在发生任何更改时才替换该图像。让我知道您是否需要其他帮助。注意:这里我正在设置按钮图片
self.avatar.kf.setBackgroundImage(with: URL(string: imagelink), for: UIControl.State()){
result in
switch result{
case .success(let value):
self.avatar.kf.setBackgroundImage(with: URL(string: imagelink), for: UIControl.State(), placeholder: value.image,options: [.forceRefresh])
print("avatar set")
break
case .failure: print("not found in cache")
break
}