この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分)の期間を義務付けています。問題の詳細については、このスレッドを参照してください。