2
+ (BOOL) networkAvailable {
    Reachability *reachability = [Reachability reachabilityForInternetConnection];

    NetworkStatus internetStatus = [reachability currentReachabilityStatus];
    if (internetStatus != NotReachable) {

        return YES;
    }
    return NO;
}

Tony Million の Reachability クラスを使用しています。現在の到達可能性を確認する静的ユーティリティ メソッドを作成しました。ただし、アプリが起動されたときに初めて機能します。

シミュレーターでアプリを起動した後、iMac (オフィスの共有 LAN に接続している) から LAN ケーブルを取り外すと、

このメソッドは依然として YES を返します。

また、デバイスでテストし、wifi 接続を削除して API 呼び出しを試みると、同じ動作が発生します。

インターネットが利用できなくなったことを検出することはありません。

到達可能性の変更の通知は必要ありません。API 呼び出しを行う前に、接続が利用可能かどうかを確認できるようにしたいだけです。

編集: これは私がそれを使用する方法です。

if(![MyUtilities networkAvailable])
{
   // network not there. show a message.
}
else {
  // make the API call
}
4

0 に答える 0