私はデバッグするのが非常に難しい問題があります。私のアプリがWiFiを使用していて、約30分間アイドル状態になると、私が目を覚ましたときに、NSURLConnection
は応答しなくなります。リクエストは送信されますが、返されることはありません。iPhoneアプリのインターネット接続が失われる(NSURLConnectionが返されない)
最初は、これはメモリのバグだと思っていました。インスタンスがあまりにも早くリリースされているため、応答が返されませんでした。しかし、私はバックグラウンドでアプリを置く場合は、3Gは排他的に使用されるように、インターネット接続は魔法のように生命に戻ってすべての保留中のすべての保留中のNSURLConnection
秒戻り、完全に使用されるように、WiFiをオフに設定します。
明らかに、これはWiFiを使用している人にとっての問題です。これは実際にWiFiの問題ですか、それとも何か不足していますか? Safariのような別のアプリに行って、WiFiラジオを使って自分のアプリに戻っても問題は解決しない - 接続はまだ返ってこない。私はこれをXcodeでトレースしましたが、アイデアが不足しています。
また、 'Application Uses WiFi' Info.plistフラグがONに設定されています。これはファームウェア5.1です。 は「アプリケーションはWiFiを使用しています」はUIRequiresPersistentWiFiと同じですか?
更新:これはWifiフラグとは関係ありません.5分以内に死ぬことがあります。これまでのところ、私は自分のiPhone 4sで5.1ファームウェアでそれを複製することしかできませんでした。それは実際の解決策ではありませんが、私はそれが何らかの効果を持っているかどうかを確認するために、新しくインストールしてみるために電話を消去しています。私はNSURLConnection
が常にメインスレッドで呼び出され、ブレークポイントはconnection:failedWithError:
とconnection:didReceiveResponse:
に設定されていることを確認しました。接続が切断されると、WiFiを無効にして再び有効にしてから、すぐにすべて戻るまで、これらのいずれも戻りません。これはローカルサーバーでも発生し、Webブラウザーでpingを実行するとサーバーは返されます。
あなたは 'UIRequiresPersistentWiFi'フラグを設定しようとしたことがありますか? – esqew
私はそう考えています - 'アプリケーションはWiFiを使用します'はpListファイルにあります。 –
あなたは誤ってメインスレッドをブロックしていますか?バックグラウンドスレッドで同期NSURLConnectionsを使用してみましたか? – magma