IOS:仅当远程图像未更改时才缓存 SDWebImage
Posted
技术标签:
【中文标题】IOS:仅当远程图像未更改时才缓存 SDWebImage【英文标题】:IOS: SDWebImage cache only if remote image has not changed 【发布时间】:2019-12-06 16:35:23 【问题描述】:我正在使用以下代码将图像加载到我的视图中:
private func setUpImage(imageFile: String, cell: ShowCollectionViewCell)
cell.showImageView.sd_imageIndicator = SDWebImageActivityIndicator.gray
cell.showImageView.sd_setImage(with: URL(string: imageFile), placeholderImage: nil, options: .refreshCached)
问题是,如果我们替换服务器中的图像,则应用程序中的图像永远不会刷新,即使用户关闭应用程序并重新启动它也是如此。只有全新安装才能获得新映像。
SDWebImage 能否在使用缓存版本之前检测到图像是否已远程更改?
我正在使用最新版本的 SDWebImage 与 Swift 4.2 和 XCode 11.1。
【问题讨论】:
【参考方案1】:我在***
中搜索并找到了。
在here
import SDWebImage
@IBAction func clearCache(sender: UIButton)
SDImageCache.sharedImageCache().clearMemory()
SDImageCache.sharedImageCache().clearDisk()
如@guidev
所述,您尝试重置缓存。
这个文档可能很旧,但我相信你可以让它工作。
【讨论】:
【参考方案2】:缓存基于 URL,因此如果要重新下载图像,则需要更改 url 名称。考虑将诸如上次修改日期之类的内容附加到 url。或者在图像更新时发送推送,然后使用 removeImageForKey
从缓存中手动逐出 url。
【讨论】:
以上是关于IOS:仅当远程图像未更改时才缓存 SDWebImage的主要内容,如果未能解决你的问题,请参考以下文章
仅当应用程序在后台请求位置后进入前台时才调用 didUpdateLocations