Swift でネットワーク状況を確認する

以下のライブラリを利用します。 https://github.com/ashleymills/Reachability.swift ただし、Reachability というライブラリ名称は、Apple の公式サンプルライブラリと名称が被るので、 名称を変えないと Reject されるといった情報もあります。 ライブラリ名称を変更しておくとよいでしょう。

Closure を使う場合

let reachability = Reachability.reachabilityForInternetConnection()

reachability.whenReachable = { reachability in
    if reachability.isReachableViaWiFi() {
        println("Reachable via WiFi")
    } else {
        println("Reachable via Cellular")
    }
}
reachability.whenUnreachable = { reachability in
    println("Not reachable")
}

reachability.startNotifier()

Notification を使う場合

let reachability = Reachability.reachabilityForInternetConnection()

NSNotificationCenter.defaultCenter().addObserver(self, selector: "reachabilityChanged:", name: ReachabilityChangedNotification, object: reachability)

reachability.startNotifier()

func reachabilityChanged(note: NSNotification) {

    let reachability = note.object as! Reachability

    if reachability.isReachable() {
        if reachability.isReachableViaWiFi() {
            println("Reachable via WiFi")
        } else {
            println("Reachable via Cellular")
        }
    } else {
        println("Not reachable")
    }
}