お使いのブラウザは、バージョンが古すぎます。

このサイトは、Internet Explore8・Internet Explore9には対応しておりません。
恐れ入りますが、お使いのブラウザをバージョンアップしていただきますよう宜しくお願いいたします。

【iOS】Reachability:ネットワーク接続状況の確認

こんばんは。mashiです。今回はネットワークの接続状況を確認する方法についてです。接続状況に応じて実行処理を分けるのに利用したいと思います。

ライブラリをダウンロード

以下のリンクからAppleが提供しているライブラリ「Reacheability」をダウンロードします。
iOS Developer Library Reachability
ディレクトリ内のReachability.h、Reachability.mのみをプロジェクトへ追加します。

フレームワークを追加

「Targets」->「Build Phases」->「Link Binary With Libraries」から「SystemConfiguration.framework」を追加します。

サンプルコード

接続状況に応じてNSNotificationで都度通知して制御する設定にします。

- (void)viewDidLoad
{
 // 接続状況が変化したときに,呼ばれるメソッドを設定
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil];

    // ホスト
    self.hostReachability = [Reachability reachabilityWithHostName:@"www.apple.com"];
    [self.hostReachability startNotifier];
    [self updateInterfaceWithReachability:self.hostReachability];
}

// 接続状況が変化したときに,呼ばれるメソッド
- (void) reachabilityChanged:(NSNotification *)note
{
    Reachability* curReach = [note object];
    NSParameterAssert([curReach isKindOfClass:[Reachability class]]);
    [self updateInterfaceWithReachability:curReach];
}

- (void)updateInterfaceWithReachability:(Reachability *)reachability
{
    if (reachability == hostReachability){
        NetworkStatus netStatus = [reachability currentReachabilityStatus];
        
        switch (netStatus){
            case NotReachable:        {
                // ホスト(接続先)に繋がらない
                break;
            }
            case ReachableViaWiFi:  { 
                // WiFi回線接続の処理
                break;
            }
            case ReachableViaWWAN:  {
                // 3G回線接続の処理
                break;
            }
        }
    }
}

コメントをどうぞ

メールアドレスは公開されません。* が付いている欄は必須項目です。


お気軽にお問い合わせください。

日本VTR実験室では、お仕事のご依頼、ブログ・コラムのご感想などを受け付けております。
アプリ開発・コンテンツ制作でお困りでしたら、お気軽にご相談ください。
ご連絡お待ちしております。

お問い合わせはこちらから

03-3541-1230

info@nvtrlab.jp

電話受付対応時間:平日AM9:30〜PM6:00