62

このNSURLConnectionをデリゲートで使用しています。

nsconnection = [[NSURLConnection alloc] initWithRequest:request
    delegate:self startImmediately:YES];

問題は、Webサイトがまったく応答しないことです。何もありません。空白のページでブラウザを回転させるだけで、失敗はありません。私の代理人では、失敗を処理しますが、サイトが応答しない場合、代理人は呼び出されません。接続をタイムアウトする方法についてのアイデアはありますか?

4

2 に答える 2

130

オブジェクトでタイムアウトを指定できますNSURLRequest。これを行う1つの方法は、メソッドを介してそれを構築することrequestWithURL:cachePolicy:timeoutInterval:です。NSURLRequestUseProtocolCachePolicy(その部分について心配したくない場合は、デフォルトのcachePolicyパラメーターを渡すことができます。)タイムアウトは、基本的にiPhone SDKのすべての時間間隔と同様に、秒単位の浮動小数点値です。

また、のデリゲートが設定され、メソッドNSURLConnectionに応答することを確認してください。connection:didFailWithError:接続は常にこのメソッドを呼び出すかconnectionDidFinishLoading:、接続の完了時に呼び出します。

于 2009-09-15T02:13:12.277 に答える
24

編集:この回答は現在廃止されていますが、回答日は正確でした。

このスレッドが古いことは知っていますが、この問題にも遭遇しました。これは、サービスが存在する内部ネットワークの外部でアプリをテストしたときに発生しました。サービスは最終的にタイムアウトしますが、Appleはタイムアウトが発生する前に240秒(4分)の期間を義務付けています。この問題の詳細については、このスレッドをチェックしてください。

NSMutableURLRequestがtimeoutIntervalに従わない

于 2010-08-31T17:02:50.733 に答える