[Swift通天遁地]4、網絡和線程-(6)檢測網絡鏈接狀態

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公衆號:山青詠芝(shanqingyongzhi)
➤博客園地址:山青詠芝(https://www.cnblogs.com/strengthen/
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:http://www.javashuo.com/article/p-crusxwea-kv.html 
➤若是連接不是山青詠芝的博客園地址,則多是爬取做者的文章。
➤原文已修改更新!強烈建議點擊原文地址閱讀!支持做者!支持原創!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★html

目錄:[Swift]通天遁地Swiftios

本文將演示如何使用AlamofireReachbility快速檢測網絡鏈接狀態。git

首先確保在項目中已經安裝了所需的第三方庫。github

點擊【Podfile】,查看安裝配置文件。swift

1 source 'https://github.com/CocoaPods/Specs.git'
2 platform :ios, '12.0'
3 use_frameworks!
4 
5 target ‘DemoApp’ do
6     pod 'Alamofire', '~> 4.0'
7 end

根據配置文件中的相關配置,安裝第三方庫。微信

而後點擊打開【DemoApp.xcworkspace】項目文件。網絡

在項目導航區,打開視圖控制器的代碼文件【ViewController.swift】app

如今開始編寫代碼,實現網絡網絡檢測鏈接狀態功能。ide

 1 import UIKit
 2 //在當前的類文件中,引入已經安裝的第三方類庫
 3 import Alamofire
 4 
 5 class ViewController: UIViewController {
 6 
 7     override func viewDidLoad() {
 8         super.viewDidLoad()
 9         // Do any additional setup after loading the view, typically from a nib.
10         
11         //初始化一個網絡鏈接狀態管理器,並設置檢測的目標網址。
12         let manager = NetworkReachabilityManager(host: "www.apple.com")
13         //調用管理對象的開始監聽方法,開始檢測目標網址的可鏈接性
14         manager?.startListening()
15         
16         //經過一個代碼塊,來處理監聽的結果
17         manager?.listener = { status in
18             
19             //在控制檯輸出:網絡的狀態
20             print(">>>>> Network Status Changed: \(status)")
21             //在控制檯輸出:網絡狀態管理器對象的可訪問性
22             print("isReachable:\(manager?.isReachable)")
23             //在控制檯輸出:是否能夠經過無線廣域網訪問目標網址
24             print("isReachableOnWWAN:\(manager?.isReachableOnWWAN)")
25             //在控制檯輸出:是否能夠經過無線局域網訪問目標網址
26             print("isReachableOnEthernetOrWiFi\(manager?.isReachableOnEthernetOrWiFi)")
27             //在控制檯輸出:輸出網絡的訪問狀態
28             print("networkReachabilityStatus:\(manager?.networkReachabilityStatus)")
29             
30             //中止對網絡狀態的監聽
31             manager?.stopListening()
32         }
33     }
34 
35     override func didReceiveMemoryWarning() {
36         super.didReceiveMemoryWarning()
37         // Dispose of any resources that can be recreated.
38     }
39 }
相關文章
相關標籤/搜索