0

我正在尝试使用缓存来使我的 iOS 应用程序更加灵活。对于每个请求,我想做的是:

  1. 从缓存中返回数据(如果存在)
  2. 如果连接到互联网,则在后台从 API 加载数据
  3. 如果来自 API 的数据与缓存中的数据不同,请更新缓存并再次返回该数据,以便刷新 UI

我知道,如果缓存中已经有一些数据并且我已连接到 Internet,则可能会连续两次调用我的响应代码,但这就是我想要的:第一组数据,可能超出-date 从缓存中返回给了我一些东西,第二组数据确保一切都是最新的。

到目前为止,我使用的所有缓存方法只能让我实现仅基于缓存年龄的 EITHER/OR 方法。现在,我正在使用AlamofireURLCache5。是否可以使用 Alamofire 5 实现这样的缓存,还是必须手动实现?

编辑:有人告诉我我正在尝试做的事情称为 Stale-While-Revalidate 类型的缓存。

4

1 回答 1

0

Alamofire 仅支持URLCache和提供的功能URLSession。您可以在 Alamofire 上实现等效模式,也许是在从网络更新时保留最后一个成功值的类型。

顺便说一句,您可能不想要“如果连接到互联网”的情况。相反,您应该只请求资源并在成功时更新。

于 2020-11-24T15:35:56.613 回答