我正在尝试使用缓存来使我的 iOS 应用程序更加灵活。对于每个请求,我想做的是:
- 从缓存中返回数据(如果存在)
- 如果连接到互联网,则在后台从 API 加载数据
- 如果来自 API 的数据与缓存中的数据不同,请更新缓存并再次返回该数据,以便刷新 UI
我知道,如果缓存中已经有一些数据并且我已连接到 Internet,则可能会连续两次调用我的响应代码,但这就是我想要的:第一组数据,可能超出-date 从缓存中返回给了我一些东西,第二组数据确保一切都是最新的。
到目前为止,我使用的所有缓存方法只能让我实现仅基于缓存年龄的 EITHER/OR 方法。现在,我正在使用AlamofireURLCache5。是否可以使用 Alamofire 5 实现这样的缓存,还是必须手动实现?
编辑:有人告诉我我正在尝试做的事情称为 Stale-While-Revalidate 类型的缓存。