【发布时间】:2024-01-15 04:29:01
【问题描述】:
有时我只想在使用 URLSession 时从缓存中获取数据。例如,当在 UITableView 中快速滚动时,我想显示已经在缓存中的图像,但不触发任何 HTTP 请求。图片只是一个例子,可以是任何东西。
所以我目前正在研究 URLSession 的 CachePolicy,但它不支持仅从缓存中获取有效(未过期等)数据的选项。
我可以自己查看 URLCache,但这当然也会返回可能过期的数据。是否有一些 API 可以验证 CachedURLResponse?因为那时我可以自己做。还是我必须自己实施验证。
【问题讨论】:
-
对于图像缓存使用 SDWemImage 库
-
@ManishMahajan 图片是一个例子,可以是任何东西。
-
@inokey 我认为这与您提供的链接不重复。我添加了图像作为 HTTP 请求的示例。真的可以是任何东西。同样在链接中,他使用额外的字典将它们保存在内存中。我想避免这种情况,因为 URLSession 已经在 URLCache 中这样做了。
-
@Haagenti 尝试查看 304 http 状态码。我记得我用它来确定是否应该从缓存中获取内容。不幸的是,我记不起更具体的了。
-
@inokey Mmm 不确定 304 状态代码是否可以解决问题,因为缓存中只包含原始响应,很可能是 200 响应。
标签: swift nsurlsession foundation