Alamofire_NetworkReachabilityManager.Swift

NetworkReachabilityManager?

對SystemConfiguration.framework中的SCNetworkReachability相關(guān)的東西進行封裝的,主要用來管理和監(jiān)聽網(wǎng)絡(luò)狀態(tài)的變化

properties:

public var isReachable: Bool ? ?

當(dāng)前網(wǎng)絡(luò)是可達的,要么是蜂窩網(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在那個隊列中調(diào)用,默認的是主隊列

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?()

默認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ù)更新

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容