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