Reachability:iOSでネット接続を確認する公式ライブラリ

Filed under iOS SDK
Tagged as , , , ,

Reachabilityは、私も過去に使ったことがあるライブラリですが、最近また別のアプリでも使ったので、メモしておきます。

本ブログ執筆時の最新バージョンであるバージョン2.2では、対応iOSは、「iOS4.0以降」となっています。

インストール

ソースですが、上記ページ(iOS Developer Library内)にある [Download Sample Code]ボタン からダウンロード出来ます。

必要なのはこの中にあるReachability.hとReachability.m 。さらにプロジェクトには、SystemConfiguration.framework というフレームワークも追加しておく必要があるので、設定しておきましょう。
無事プロジェクトに追加できたら、下記のようなコードでネット接続状況を判別できます!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Reachability *reachablity = [Reachability reachabilityForInternetConnection];
NetworkStatus status = [reachablity currentReachabilityStatus];
switch (status) {
    case NotReachable:
        NSLog(@"インターネット接続出来ません");
        break;
    case ReachableViaWWAN:
        NSLog(@"3G接続中");
        break;
    case ReachableViaWiFi:
        NSLog(@"WiFi接続中");
        break;
    default:
        NSLog(@"??[%d]", status);
        break;
}

Warning対策

最近の開発環境では、ビルド時にReachabilityで下記のようなWarningが出ることがあります。

Declaration of ‘struct sockaddr_in’ will not be visible outside of this function

この場合、次の #import 指定を Reachability.h に追記すればこのWarningは消えます。

1
#import <netinet/in.h>

ARC対応のアプリでは要注意

私が今手がけているアプリではどれもARC対応とかしていないのですが、ARC対応のプロジェクトでは現在公開されている Reachability(Version 2.2, 2010-07-20)はそのままでは使えないようなので要注意です。
いろいろとネットに情報は転がっているので、必要な方はそれぞれ参考して修正してください!

↑2つ目のGistというのはそのままGitHubに上がっているので便利そうですね!


[AD]

↓購入しました!VMWare Playerとそこで動く仮想環境が入ったCD-ROM付き!さぁ、やるぞ!

体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践

著者/訳者:徳丸 浩

出版社:SBクリエイティブ( 2011-03-01 )

定価:

Amazon価格:¥ 6,468

単行本 ( 496 ページ )

ISBN-10 : 4797361190

ISBN-13 : 9784797361193


↓次のステップへ行きたいiOSアプリ開発者は必携!

エキスパートObjective-Cプログラミング -iOS/OS Xのメモリ管理とマルチスレッド-

著者/訳者:坂本 一樹

出版社:インプレス( 2011-11-18 )

定価:

Amazon価格:¥ 11,956

単行本(ソフトカバー) ( 224 ページ )

ISBN-10 : 4844331094

ISBN-13 : 9784844331094


One Comment

  1. […] NSOperation がいいなぁ~。(^^) ・参考サイト: TORQUES LABS Reachability:iOSでネット接続を確認する公式ライブラリ ・ソース: Reachability (iOS) ARCified — Gist 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 […]

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)