0

私のアプリでは、ユーザーがインターネットに接続していない場合、「インターネットに接続していません」というメッセージを表示する必要があります。

そのような到達可能性を使用するには:

Reachability *netReach = [Reachability reachabilityWithHostName:@"host.name"];

インターネットは利用できるかもしれませんが、ホストは利用できないので、悪い考えですよね?

では、ホストなしでインターネット接続を確認する方法は?ありがとう...

4

2 に答える 2

1
Reachability *internetReachable = [Reachability reachabilityForInternetConnection];
[internetReachable startNotifier];
if(internetReachable.isReachable)
    NSLog(@"True");
于 2012-04-06T09:56:19.747 に答える
0

あなたは、絶対に正しい。到達可能性は、特定のホストが到達可能かどうかのみをチェックします。問題は、ホストにリクエストを送信しないと、インターネットに接続しているかどうかを判断する方法が (私が思いつく限り) ないことです。

そこであなたにできること (そして Apple が Reachability の例で行っていること): ホストが利用可能であることを 99.99% 確信できるホストを選択してください。たとえば、google.com や apple.com のように

Apple が特定のホストを利用してインターネット接続を確認できることに依存しているという事実 (および、特定のホストに依存せずに他の何かを考え出していないという事実) は、インターネット接続を確認しているというかなり良い兆候だと思います。この方法はそれほど悪い考えではありません。

編集

もちろん、(Petesh が指している質問への回答で説明されているように) 最善の方法は、単に要求を行い、エラーが発生した場合はそれに応じてエラーを処理することです。つまり: 1. リクエストを作成します 2. リクエストが失敗した場合は、Reachability を使用して、インターネット接続の欠落が問題であるかどうかを確認します

于 2012-04-06T09:42:53.830 に答える