Tomute’s Notes Twitter

2010-01-17

[] Reachabilityがバージョンアップされて使い方が少し変更されていた

AppleiPhoneネットワーク接続状態を確認するのに便利なReachabilityというクラスを公開してくれているのだが、ソースコードバージョンアップされており、このクラスの使い方に若干の変更があったようなので、以下にメモとして残しておく*1


Reachabilityの古いバージョン(v1.5)では、例えば以下のような実装でiPhoneの現在のネットワーク接続状況をチェックする事が出来た。

Reachability *curReach = [Reachability sharedReachability];
NetworkStatus netStatus = [curReach internetConnectionStatus];
switch (netStatus) {
    case NotReachable:
        NSLog(@"Access Not Available");
        break;
    case ReachableViaCarrierDataNetwork:
        NSLog(@"Reachable via Carrier Data Network");
        break;
    case ReachableViaWiFiNetwork:
        NSLog(@"Reachable via WiFi");
        break;
}

しかし、新しいバージョン(v2.0)では、クラスメソッド sharedReachabilityがなくなっていた。その代わりにreachabilityForInternetConnectionというメソッドを使えば良いようだ。またNetworkStatusのenum値も変更されていた。

新しいバージョンのReachabilityを使って、上記と同様の事をする場合には以下のような形になる。

Reachability *curReach = [Reachability reachabilityForInternetConnection];
NetworkStatus netStatus = [curReach currentReachabilityStatus];
switch (netStatus) {
    case NotReachable:
        NSLog(@"Access Not Available");
        break;
    case ReachableViaWWAN:
        NSLog(@"Reachable via WWAN");
        break;
    case ReachableViaWiFi:
        NSLog(@"Reachable via WiFi");
        break;
}

参考記事

*1バージョンアップがあったのは去年の8月なので結構前だった

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

リンク元