NetworkReachabilityManager?
對SystemConfiguration.framework中的SCNetworkReachability相關(guān)的東西進(jìn)行封裝的臼节,主要用來管理和監(jiān)聽網(wǎng)絡(luò)狀態(tài)的變化
properties:
public var isReachable: Bool ? ?
當(dāng)前網(wǎng)絡(luò)是可達(dá)的巫玻,要么是蜂窩網(wǎng)絡(luò)锐峭,要么是WiFi連接
public var isReachableOnWWAN: Bool
表明當(dāng)前網(wǎng)絡(luò)是通過蜂窩網(wǎng)絡(luò)連接
public var isReachableOnEthernetOrWiFi: Bool
表明當(dāng)前網(wǎng)絡(luò)是通過WiFi連接
public var networkReachabilityStatus: NetworkReachabilityStatus
返回當(dāng)前的網(wǎng)絡(luò)狀態(tài),這也是上邊3個判斷的基礎(chǔ)
public var listenerQueue: DispatchQueue
監(jiān)聽listener在那個隊(duì)列中調(diào)用,默認(rèn)的是主隊(duì)列
public var listener: Listener?
監(jiān)聽閉包覆糟,當(dāng)網(wǎng)絡(luò)狀態(tài)發(fā)生變化時會調(diào)用
private var flags: SCNetworkReachabilityFlags?
主要目的是獲取flags,在上邊我們介紹過,網(wǎng)絡(luò)狀態(tài)就是根據(jù)flags判斷出來的是通過下邊的方法獲取到的:
private let reachability: SCNetworkReachability
必不可少的對象窜护,有了它才能獲取flags
private var previousFlags: SCNetworkReachabilityFlags
用于記錄當(dāng)前的flags,在收到系統(tǒng)的callBack方法后非春,通過比較現(xiàn)在的flags和previousFlags來判斷是不是要調(diào)用listener函數(shù)
init 初始化
public convenience init?(host: String)?
通過指定的host
public convenience init?()
默認(rèn)0.0.0.0初始化
private init(reachability: SCNetworkReachability)
通過指定SCNetworkReachability
開啟監(jiān)聽
public func startListening() -> Bool
關(guān)閉監(jiān)聽
public func stopListening() ??
很少情況下需要關(guān)閉監(jiān)聽..........
example
自己封裝的一個類,AppDelegate調(diào)用
AppDelegate全局屬性調(diào)用.
任何類都可以手動調(diào)用.判斷當(dāng)前網(wǎng)絡(luò)狀態(tài).
持續(xù)更新