ライブラリ自体は、以前から導入していましたが、書き方が当時と変わっていたので備忘録としてまとめ。
タイトル通り、iOS 端末がインターネットに接続されているかどうかを確認する方法についてです。
ライブラリは「ReachabilitySwift」を利用しています。
GitHub のページはこちらから。
GitHub – ashleymills/Reachability.swift: Replacement for Apple’s Reachability re-written in Swift with closures
https://github.com/ashleymills/Reachability.swift
インストールには CocoaPods を利用しました。
まず、Podfile に下記を追加します。
pod 'ReachabilitySwift'
上記を追加したら、コマンドラインツールで pod install を実行します。
上記が完了したら、プロジェクトにコードを追加していきます。
と言っても、実際に書いたコードはこれだけです。
まず、下記の 1行を追加し、ライブラリをインポートします。
import Reachability
上記を追加したら一旦、Build をおすすめします。
で、あとは任意のタイミングで下記のコードを実行するだけです。
let reachability = try! Reachability()
if reachability.connection == .unavailable {
    // インターネット接続なし
} else {
    // インターネット接続あり
}
上記コードの 2行目に書いてある通り、もし reachability.connection の返り値が .unavailable だったら、その端末はインターネット接続されていませんので、警告文を表示するなどの任意の処理を行ってください。
それ以外であれば、インターネット接続がされています。
もし、もっと細かく、Wi-Fi なのか、au・SoftBank・docomo などのキャリア通信なのかを判断したいのであれば、下記のように記述してください。
let reachability = try! Reachability()
switch reachability.connection {
case .wifi:
    print("Wi-Fi に接続しています")
case .cellular:
    print("キャリアの回線に接続しています")
case .unavailable:
  print("インターネットに接続されていません")
}
今回は、ここまで細かく確認する必要がなかったので、1つ目のサンプルコードを使いましたが、例えば大きいファイルをダウンロードするなどの通信量の多い処理を行う場合に、もしキャリア通信を行っていたら処理を行う前に警告を表示する、などの対応を行えそうですね。
この辺りは実装したい機能に合わせて適宜変更してください。
以上、Swift で端末がインターネットに接続されているかどうかを確認できるライブラリ「ReachabilitySwift」でした。
ご参考になれば幸いです。
 
					         
               
                       
                