私が使用している API には、キャッシング ヘッダーがかなり貧弱です。私は独自のキャッシングを実装したいと考えており、Alamofire を使用してどのようにそれを行うのか疑問に思っていました。私はswiftの初心者ですが、基本は理解できたと思います。NSURLSessionDataDelegate
最初に考えたのはメソッドを実装することURLSession(_:dataTask:willCacheResponse:completionHandler:)
でしたが、Manager オブジェクトには既に独自のデリゲートがあり、それを拡張する方法がわかりません。Alamofire を介してリクエストをデバッグしようとしましたが、willCacheResponse
デリゲート メソッドが起動されていないようで、それ自体が問題である可能性があります。
私の2番目の考えは、Managerを拡張して何かを追加すること.cachedRequest
でしたが、拡張機能を介して何にもアクセスできず、Request
オブジェクトを初期化できず、オプションがほとんどありません。
JavaScript から来て、Promise のファンである私は、次のようなことができるようになりたいと思っています。
manager.request(Router.UserChannels)
.checkCache()
.responseCollection { (_, _, channels: [Channel]?, error: NSError?) in
completionHandler(channels, error)
}
しかし、私はそれがそのように機能しないと思います。これについて何らかの意見をいただければ幸いです。
ありがとう。