1

私は iOS 7.1 (XCode 5.1) を使用しており、最近 Tony Million の Reachability ライブラリとその後のApple のサンプル コードをダウンロードしました。テスト中、WiFiをオフにすると両方とも正常に検出されましたが、再接続するとホスト名に到達できませんでした。

HTTP トラフィックを調べた理由を特定しようとすると、remoteHostName が使用されなくなり、代わりに 3 つのランダム化されたホスト名リクエスト (例: ) が使用されているようhttp://jcyoxhjblgです。

編集上記のステートメントは正しくありません。これら 3 つの接続は到達可能性に関連していないようですが、再接続時に実行される Chrome DNS 機能に関連しているようです。再接続しても到達できない理由をまだ調べています。

www.apple.com と www.google.com の両方 (http:// の有無にかかわらず) を使用して、ローカル シミュレーターで両方のサンプル コード (以下の Apple の抜粋) をテストしました。どちらも上記の結果を提供します。

Reachability 内からホスト名の到達可能性がどのように提供されるかについての基本的な理解が欠けていますか?

NSString *remoteHostName = @"www.google.com";
self.hostReachability = [Reachability reachabilityWithHostName:remoteHostName];
[self.hostReachability startNotifier];
[self updateInterfaceWithReachability:self.hostReachability];
4

1 に答える 1

-1

メソッド「startNotifier」はCurrentRunloopが実行されているかどうかに依存するため、別のReachabilityオブジェクトを初期化し、アプリがバックグラウンドから復帰するたびに「[self.hostReachability startNotifier]」を呼び出す必要があると思います。

于 2014-03-12T02:16:27.863 に答える