私は、カスタムNSURLProtocolsの周りのRay Wenderlichからthis tutorialまで実行しています。私は特定のNSURLRequests(それらを '要求a'と呼ぶ)と別の要求( '要求b')を撃退するシナリオを持っています。この2番目のリクエスト(b)が失敗するシナリオでは、元のリクエスト(a)を取り消すことができるようにしたいのですが、一定期間後にタイムアウトした瞬間ですが、それ。NSURLRequestに関連付けられたNSURLConnectionを取得します。
カスタムNSURLProtocol内で、傍受されたNSURLRequest(リクエストa)を使用してリクエストb用の新しいNSURLConnectionを作成していますが、そのリクエストを発生させた元のNSURLConnectionへの参照を取得できるかどうかは知っていますか?これにより、後続のリクエストbコールが失敗した場合にキャンセルできます。
編集:私の例ではself.connectionは「リクエストB」に関係しますので、NSURLConnectionのデリゲートメソッドの
なし、私の元のNSURLConnectionオブジェクトへのアクセス権を与えないだろう、いない元の要求
参照してください。以下の例のデリゲートメソッド:
- (void)startLoading {
self.connection = [NSURLConnection connectionWithRequest:self.request
delegate:self];
}
- (void)stopLoading {
[self.connection cancel];
self.connection = nil;
}
実装に関連するコードスニペットを追加できますか? –
*このチュートリアル*はほぼ4歳で、APIは古くなっています。 – vadian
これは、NSURLConnectionを使用することができないことを意味しますか?私はNSURLSessionが好意的なアプローチであることを認識していますが、チュートリアルをたどっているだけです。NSURLSessionを使用して改訂版があるかどうかわかりません。 –