まず、この質問は既に存在するとは思わないが、同様の投稿があると私は同意する。彼の "接続"状態でNSUrlConnectionを中止する
私の質問は、どのように彼の "接続中"状態でNSUrlConnectionを中止するのですか?接続が確立したら、NSUrlConnection cancel
メソッドを使用してリクエストをキャンセルできます。しかし、サーバーが応答を提供しない(デリゲート呼び出しを受信する前に)タイムアウトに達する前に、 "接続"状態でどのように中断しますか?
ありがとうございました!
EDIT
は、私が(そのメソッドcancel
で)それを行うためにNSURLSessionTask
の代わりNSUrlConnection
を使用する必要がありますか?
EDIT 2 - コードサンプル、私はデータをストリーミングするために私の接続を使用し
NSURLConnection* m_connection;
m_connection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:NO];
if(m_connection){
[m_connection start];
m_timer = [NSTimer scheduledTimerWithTimeInterval: FLT_MAX
target: self selector: @selector(doNothing:)
userInfo: nil repeats:YES];
m_runLoop = [NSRunLoop currentRunLoop];
[m_runLoop addTimer:m_timer forMode:NSDefaultRunLoopMode];
while (m_bRunLoop && [m_runLoop runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]]);
[m_connection cancel];
}
。ご覧のとおり、今のところ私は接続設定m_bRunLoop
をfalse
に打ち切りました。これは問題ありません。しかし、私の質問は:どのようにサーバーが応答を送信する前に、完全なタイムアウトを待たずに私の接続を中断する?
あなたは 'NSURLConnection'インスタンスを作成する場所にコードを投稿できますか?キャンセルする場所は同じクラスか別のクラスですか? –
投稿を編集したり、別のクラスを編集したりしても問題はありません。 – N0un