如何缓存以后在IOS中可以更改的图像?

时间:2016-09-23 06:05:07

标签: ios caching

我正在构建一个基本的社交应用程序,其中包含用户和每个人都有个人资料图片我使用Kingfisher加载他们的个人资料图片,其中包含与其userId相关的网址。

例如:www.myapp.com/users/user24932.jpg

在第一次加载时,它们加载正常,但问题是图像也被缓存。因此,如果一个人从网站更改个人资料图片,iOS应用程序仍然从缓存中获取相同的图像,因为网址仍然相同。

但我也不想每次都加载个人资料图片。

在这种情况下如何处理缓存?

2 个答案:

答案 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
                        }