デバッグが非常に難しい問題が発生しています。私のアプリが 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 を実行すると、サーバーは引き続き応答します。