如何配置URLSessionConfiguration以便缓存的数据仅持续5分钟(后端不处理过期时间)

时间:2018-11-05 10:32:12

标签: swift caching urlsession nsurlsessionconfiguration nsurlrequestcachepolicy

我想缓存我从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)

这里的问题是,例如,如果我请求纽约的天气数据,并将城市添加到我最喜欢的城市中。 然后,如果我两天都没有启动我的应用程序,那么我将加载两天前的缓存数据。

我想配置URLSessionConfiguration的到期时间。

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

0 个答案:

没有答案