1. 程式人生 > >IOS網路、多執行緒、shareSDK-檢測網路連線狀態

IOS網路、多執行緒、shareSDK-檢測網路連線狀態

在開發的時候需要我們去判斷使用者當前的網路狀態來進行操作,比如說下載時需要提示使用者當前的網路環境避免過度使用移動流量等

檢測網路這裡使用的是開源庫Reachability.swift-master

下載之後只需要將這個檔案匯入到專案目錄中即可

import UIKit
class ViewController: UIViewController  {
    
    //為當前檢視控制器新增一個網路檢測屬性
    var reachability : Reachability!
    override func viewDidLoad() {
        super.viewDidLoad()
        //對網路檢測屬性進行初始化
        reachability = Reachability()
        //呼叫網路檢測方法 判斷當前裝置的網路情況
        reachability.whenReachable = {
            //獲得網路狀態之後返回主執行緒反應
            reachability in DispatchQueue.main.async {
                //如果當前為無線網路
                if reachability.connection == .wifi{
                    print("無線網路")
                }else{
                    print("3G  4G ")
                }
            }
        }
        reachability.whenUnreachable = {
            reachability in DispatchQueue.main.async {
                print("無網路連線")
            }
        }
        //檢測網路的狀態
        do {
            try reachability.startNotifier()
        } catch  {
            print("Unable to start notifier")
        }
        
    }
    //在檢視控制器類的西溝方法中 停止網路狀態的檢測
    deinit {
        reachability.stopNotifier()
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}