• This repository has been archived on 29/Dec/2022
  • Stars
    star
    456
  • Rank 95,985 (Top 2 %)
  • Language
    Swift
  • License
    MIT License
  • Created about 10 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A simple class to check for internet connection availability in Swift.

Reach

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

Install

Manually
  • Add the Reach.swift file to your project.

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

  • Return storngly typed object containing more information about the network status.

Credits

  • Chris Danielson is the author of the original code written in Objective-C.
  • Martin R from StackOverflow helped me immensely in converting C code to Swift.