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月なので結構前だった