NSURLConnectionタイムアウト?
-
07-07-2019 - |
質問
このNSURLConnectionをデリゲートで使用しています。
nsconnection = [[NSURLConnection alloc] initWithRequest:request
delegate:self startImmediately:YES];
問題は、Webサイトがまったく応答しないことです。何もありません。ブラウザで空白のページを回転させるだけで、失敗はありません。デリゲートでは、失敗を処理しますが、サイトが応答しない場合、デリゲートは呼び出されません。接続をタイムアウトする方法に関するアイデアはありますか?
解決
NSURLRequest
オブジェクトでタイムアウトを指定できます。これを行う1つの方法は、 requestWithURL:cachePolicyを使用して構築することです。 timeoutInterval:
メソッド。 (その部分を心配したくない場合は、デフォルトの NSURLRequestUseProtocolCachePolicy
cachePolicyパラメーターを渡すことができます。)タイムアウトは、基本的にiPhoneのすべての時間間隔と同様に、秒単位の浮動小数点値です。 SDK。
また、 NSURLConnection
のデリゲートが設定され、 connection:didFailWithError:
メソッド。接続は、接続の完了時に常にこのメソッドまたは connectionDidFinishLoading:
を呼び出します。
他のヒント
編集:この回答は廃止されましたが、回答日は正確でした。
このスレッドが古いことは知っていますが、この問題にも遭遇しました。これは、サービスが存在する内部ネットワークの外部でアプリをテストするときに発生しました。サービスは最終的にタイムアウトしますが、Appleはタイムアウトが発生する前に240秒(4分)の期間を義務付けています。問題の詳細については、このスレッドをご覧ください。