Blog スタッフブログ

iOS Swift システム開発

[iOS]Reachability.swiftで通信状態を判別する

Swift

こんにちは、株式会社MIXシステム開発担当のBloomです。

早速本題のReachiablity.swiftを導入し通信状態を判別する手順について、お仕事の中で得た知見を共有させていただきたいと思います。

Reachabilityとは

Reachability.swift – GitHub

Reachability.swiftは元々あったAppleが提供していた接続状態を判別するサンプルコードが有志の手でARCに対応した形でライブラリ化され、さらにそれをSwiftへ書き換えたライブラリです。

CocoaPods、Carthage、SwiftPMによるインストールがサポートされており、Installationから導入手順を確認できます。

実際に利用してみた

import Reachability

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        let reachability = try! Reachability()
        switch reachability.connection {
        case .unavailable:
            print("通信ができません")
        case .wifi:
            print("Wi-Fi接続しています")
        case .cellular:
            print("キャリア通信しています")
        }
    }
}

Reachabilityクラスをインスタンス化し、connectionの値で判別するのみのコードで通信状態の判別が可能です。

たったこれだけでWi-Fi通信状態かキャリア通信かも判定が可能です。良かったですね。

参考文献

Reachability.swift – G