zoukankan      html  css  js  c++  java
  • [Xcode 实际操作]八、网络与多线程-(1)使用Reachability类库检测网络的连接状态

    目录:[Swift]Xcode实际操作

    本文将演示如何使用Reachability网络状态检测库,检测设备的网络连接状态。

    需要下载一个开源的类库:【ashleymills/Reachability.swift】

    这是一个用来检测设备网络状态的库。

    支持自动引用计数,并且使用闭包的方式,来通知网络状态的变化。

    【Clone or download】下载类库。

    将【Sources】->【Reachability.swift】文件拖入到项目中,只需要添加这个文件即可。

    ->【Finish】将文件导入到项目中。

    在项目导航区,打开视图控制器的代码文件【ViewController.swift】

     1 import UIKit
     2 
     3 class ViewController: UIViewController {
     4     
     5      //给当前的视图控制器添加一个网络监测属性
     6     var reachability : Reachability!
     7     override func viewDidLoad() {
     8         super.viewDidLoad()
     9         // Do any additional setup after loading the view, typically from a nib.
    10         
    11         //对网络监测属性进行初始化
    12         reachability = Reachability()
    13         
    14         //调用网络监测方法,判断当前设备的网络环境
    15         reachability.whenReachable = { reachability in
    16             //获得网络状态之后返回主线程进行响应
    17             DispatchQueue.main.async
    18             {
    19                 //如果当前的网络环境,是通过无线网络连接
    20                 if reachability.connection == .wifi
    21                 {
    22                     //则在控制台打印输出日志
    23                     print("Reachable via WiFi")
    24                 }
    25                 else
    26                 {
    27                     //如果当前的网络环境是蜂窝移动网络
    28                     //则在控制台打印输出相关日志
    29                     print("Reachable via Cellular")
    30                 }
    31             }
    32         }
    33 
    34         //处理网络无法连接的情况。
    35         reachability.whenUnreachable = { reachability in
    36             //如果设备无网络连接
    37             DispatchQueue.main.async
    38             {
    39                 //则在控制台打印输出相关日志
    40                 print("Not reachable")
    41             }
    42         }
    43         
    44         //创建一个异常捕捉语句
    45         do
    46         {
    47             //调用网络检测对象的开始检测方法,
    48             //开始检测网络的状态
    49             try reachability.startNotifier()
    50         }
    51         catch
    52         {
    53             print("Unable to start notifier")
    54         }
    55     }
    56     
    57     //在视图控制器类的析构方法中
    58     deinit
    59     {
    60         //停止网络状态的检测
    61         reachability.stopNotifier()
    62     }
    63 
    64     override func didReceiveMemoryWarning() {
    65         super.didReceiveMemoryWarning()
    66         // Dispose of any resources that can be recreated.
    67     }
    68 }
  • 相关阅读:
    spark机器学习从0到1特征抽取–Word2Vec(十四)
    spark机器学习从0到1特征抽取–CountVectorizer(十三)
    spark机器学习从0到1特征提取 TF-IDF(十二)
    spark机器学习从0到1机器学习工作流 (十一)
    vant ui中area组件踩坑记录
    免费CDN:jsDelivr+Github 使用方法
    使用vue-quill-editor实现富文本编辑器
    数组添加元素到特定位置
    scoop——强大的Windows命令行包管理工具
    radio单选框样式
  • 原文地址:https://www.cnblogs.com/strengthen/p/10054684.html
Copyright © 2011-2022 走看看