0

我正在使用的 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)
        }

但我想它不会那样工作。我真的很想就此获得一些意见。

谢谢。

4

0 回答 0