2

iPhone4でiOS4.1を使用しています。到達可能性コードの最新バージョンも使用しています。私のデバイスには接続がありませんが、コードがタイムアウトするのを待っているか、デバイスが到達可能性ステータスについて報告するのに時間がかかるようです。

これは、iPhone3gs を使用する iOS4.0.1 では発生しないようです。

他の誰かがこれに出くわしましたか? 新しいスレッドを開始する以外に回避する方法はありますか?

4

1 に答える 1

7

非同期で使用していますか?

Reachability プロジェクトの Apple のドキュメント ReadMe.txt から:

Reachability サンプルは、SCNetworkReachability API の非同期使用を示しています。API を同期的に使用できますが、メイン スレッドで hostName による同期チェックを発行しないでください。デバイスが DNS サーバーに到達できない場合、または低速ネットワーク上にある場合、SCNetworkReachabilityGetFlags 関数への同期呼び出しは、ホスト名の解決を試みるために最大 30 秒間ブロックされる可能性があります。これがメイン スレッドで発生した場合、アプリケーション ウォッチドッグは、非アクティブ状態が 20 秒続くとアプリケーションを強制終了します。

だから、私はあなたが正しいと思います-それを処理するためにバックグラウンドスレッドを開始してください。

于 2011-01-05T23:14:45.900 に答える