- iOS 12 or higher
- tvOS 12 or higher
- macOS 10.14 or higher
Add the ReachabilityManager.swift on your project.
Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks. To install with Carthage:
- Install Carthage via Homebrew
$ brew update
$ brew install carthage
- Add github
dcortes22/ReachabilityManager.swift
to your Cartfile. - Run
carthage update
- Drag
ReachabilityManager.framework
from the Carthage/Build/iOS/ directory to the Linked Frameworks and Libraries section of your Xcode project’s General settings. - Add
$(SRCROOT)/Carthage/Build/iOS/ReachabilityManager.framework
to Input Files of Run Script Phase for Carthage. - In your code import ReachabilityManager like so:
import ReachabilityManager
ReachabilityManager is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'DCReachabilityManager'
ReachabilityManager uses closures to handle the connections changes. This closures run on the main queue.
ReachabilityManager takes advantage from the NWPathMonitor class, so you can initialize the library to use a specific adapter and check the status on only that one, or use all the adapters available.
// Empty parameter on the constructor means to subscribe to all the available network adapters
let manager = ReachabilityManager()
You can specify a specific adapter using the enum Adapter
// Here we will subscribe to the cellular adapter only
let manager = ReachabilityManager(adapter: .cellular)
To check the state changes you can use the onConnectionReachable and onConnectionUnReachable closures
// Empty parameter on the constructor means to subscribe to all the available network adapters
let manager = ReachabilityManager()
manager.onConnectionReachable = { (manager) in
print("Connection online")
}
manager.onConnectionUnReachable = { (manager) in
print("Connection offline")
}
The closures have a ReachabilityManager parameter which has the information about the current adapter subscribed
// Empty parameter on the constructor means to subscribe to all the available network adapters
let manager = ReachabilityManager()
manager.onConnectionReachable = { (manager) in
print("Connection online on adapter \(manager.currentAdapterMode)")
}
manager.onConnectionUnReachable = { (manager) in
print("Connection offline on adapter \(manager.currentAdapterMode)")
}
David Cortes, @dcortes22
ReachabilityManager is available under the MIT license. See the LICENSE file for more info.