1

我想缓存从我的 API 请求中收到的数据。

更准确地说,我希望缓存数据的最长生命周期为 5 到 10 分钟。

事实上,我正在开发一个天气应用程序,我不需要数据库,只是为了能够重用以前请求中的数据。

例如 :

  • 用户请求纽约的预测数据
  • 用户请求伦敦的预测数据

现在,如果用户再次请求纽约,我想重用之前请求中的数据。天气数据在后端每 15 分钟更新一次(这就是为什么 5 分钟缓存就足够了,天气应用程序中的导航不会持续那么久)。

这是我目前拥有的:

let configuration = URLSessionConfiguration.default
configuration.requestCachePolicy = .returnCacheDataElseLoad
configuration.timeoutIntervalForRequest = TimeInterval(60)
configuration.timeoutIntervalForResource = TimeInterval(60)

let session = URLSession(configuration: configuration)

这里的问题是,例如,如果我请求纽约的天气数据,并将城市添加到我最喜欢的城市中。然后,如果我在 2 天内从未启动我的应用程序,我将加载 2 天前的缓存数据。

我想配置我的 URLSessionConfiguration 的过期时间。

注意:我所有的模型对象都来自 Codable 协议和 WebServices。

4

0 回答 0