Isuru-Nanayakkara / Reach

A simple class to check for internet connection availability in Swift.
MIT License
456 stars 119 forks source link
ios reachability swift

Reach

A simple class to check for internet connection availability in Swift. Works for both 3G and WiFi connections.

Install

Manually

Usage

There are two ways to get network status information from Reach.

  1. Call Reach().connectionStatus(). The network status is returned in an enum called ReachabilityStatus.
let status = Reach().connectionStatus()

switch status {
case .unknown, .offline:
    print("Not connected")
case .online(.wwan):
    print("Connected via WWAN")
case .online(.wiFi):
    print("Connected via WiFi")
}
  1. By subscribing to ReachabilityStatusChangedNotifications. The network status is returned as a string.
override func viewDidLoad() {
    super.viewDidLoad()

    NotificationCenter.default.addObserver(self, selector: #selector(ViewController.networkStatusChanged(_:)), name: Notification.Name(rawValue: ReachabilityStatusChangedNotification), object: nil)

    Reach().monitorReachabilityChanges()
}

@objc func networkStatusChanged(_ notification: Notification) {
    if let userInfo = notification.userInfo {
        let status = userInfo["Status"] as! String
        print(status)
    }

}

ToDo

Credits