4

デバッグが非常に難しい問題が発生しています。私のアプリが WiFi を使用していて、約 30 分間アイドル状態になっている場合、アプリを起動すると がNSURLConnection応答しなくなることがあります。リクエストは送信されますが、返されることはありません。

最初は、これはインスタンスのリリースが早すぎて応答が返されないというメモリのバグだと思いました。ただし、アプリをバックグラウンドにして設定に移動し、WiFi をオフにして 3G のみを使用し、アプリに戻ると、魔法のようにインターネット接続が復活し、すべての保留中NSURLConnectionの s が返されて完了します。

明らかに、これはWiFiを使用している人々にとって問題です。これは本当に WiFi の問題ですか、それとも何か不足していますか? Safari などの別のアプリに移動し、WiFi ラジオを使用してアプリに戻っても、問題は解決しません。接続はまだ戻りません。これを Xcode で追跡しましたが、アイデアが不足しています。

また、'Application Uses WiFi' Info.plist フラグが ON に設定されており、これはファームウェア 5.1 です。「Application Uses WiFi」は UIRequiresPersistentWiFi と同じですか?

更新: これは Wifi フラグとは関係ありません。5 分以内に終了する可能性があります。これまでのところ、5.1 ファームウェアを搭載した iPhone 4s でしか複製できませんでした。それは実際には解決策ではありませんが、電話を消去して、新しいインストールで試してみて、それが効果があるかどうかを確認しています. NSURLConnectionが常にメイン スレッドで呼び出されることを確認し、connection:failedWithError:およびにブレークポイントを設定しましたconnection:didReceiveResponse:。接続が切断されると、WiFi を無効にして再度有効にし、一度にすべてが戻るまで、これらのどれも返されません。これはローカル サーバーでも発生し、Web ブラウザーで ping を実行すると、サーバーは引き続き応答します。

4

2 に答える 2

3

この問題が発生しているその他の場合は、TestFlight v1.0 以下が原因です。

NSURLConnection がバックエンドに到達できないのはなぜですか?

于 2012-04-24T08:42:25.467 に答える
0

を介して実際にデータを送受信していNSURLConnectionますか? そうでない場合、TCP セッションのタイムアウトに達している可能性はありますか? ローカル サーバーで問題が解決しない場合は可能性が低いと思われますが、介在するステートフル ファイアウォール/パケット インスペクターが TCP 接続を切断している可能性があります。

于 2012-04-17T02:18:55.710 に答える