我正在使用的 API 的缓存标头很差。我想实现自己的缓存,并且想知道如何使用 Alamofire 来实现它。我是 swift 的初学者,但我认为我已经掌握了基础知识。我的第一个想法是实现该NSURLSessionDataDelegate
方法URLSession(_:dataTask:willCacheResponse:completionHandler:)
,但 Manager 对象已经有它自己的委托,我不知道如何扩展它。我尝试通过 Alamofire 调试请求,似乎willCacheResponse
委托方法从未被触发,这本身可能是一个问题。
我的第二个想法是扩展 Manager 并添加类似的东西,.cachedRequest
但我无法通过扩展访问任何东西,也无法初始化Request
对象并且选项很少。
来自 JavaScript 并且是 Promise 的粉丝,我希望能够执行以下操作:
manager.request(Router.UserChannels)
.checkCache()
.responseCollection { (_, _, channels: [Channel]?, error: NSError?) in
completionHandler(channels, error)
}
但我想它不会那样工作。我真的很想就此获得一些意见。
谢谢。