NetworkReachabilityManager
对SystemConfiguration.framework中的SCNetworkReachability相关的东西进行封装的,主要用来管理和监听网络状态的变化
properties:
public var isReachable: Bool
当前网络是可达的,要么是蜂窝网络,要么是WiFi连接
public var isReachableOnWWAN: Bool
表明当前网络是通过蜂窝网络连接
public var isReachableOnEthernetOrWiFi: Bool
表明当前网络是通过WiFi连接
public var networkReachabilityStatus: NetworkReachabilityStatus
返回当前的网络状态,这也是上边3个判断的基础
public var listenerQueue: DispatchQueue
监听listener在那个队列中调用,默认的是主队列
public var listener: Listener?
监听闭包,当网络状态发生变化时会调用
private var flags: SCNetworkReachabilityFlags?
主要目的是获取flags,在上边我们介绍过,网络状态就是根据flags判断出来的是通过下边的方法获取到的:
private let reachability: SCNetworkReachability
必不可少的对象,有了它才能获取flags
private var previousFlags: SCNetworkReachabilityFlags
用于记录当前的flags,在收到系统的callBack方法后,通过比较现在的flags和previousFlags来判断是不是要调用listener函数
init 初始化
public convenience init?(host: String)
通过指定的host
public convenience init?()
默认0.0.0.0初始化
private init(reachability: SCNetworkReachability)
通过指定SCNetworkReachability
开启监听
public func startListening() -> Bool
关闭监听
public func stopListening()
很少情况下需要关闭监听..........
example
自己封装的一个类,AppDelegate调用
AppDelegate全局属性调用.
任何类都可以手动调用.判断当前网络状态.
持续更新