一、前言

在移动开发中,检测网络的连接状态尤其检测网络的类型尤为重要。本文将介绍在iOS开发中,如何使用Swift检测网络连接状态及网络类型(移动网络、Wifi)。

二、如何实现

Reachability.swift 是一个使用Swift写的第三方网络检测类,可以用来检测网络连接状态及网络类型(移动网络、Wifi)功能。

三、如何使用

1. 使用Cocopod安装Reachability.swift

use_frameworks!

pod 'ReachabilitySwift'

2. 基本使用代码示例

使用前记得导入ReachabilitySwift类,下面代码放在viewDidLoad()方法中即可。

var reachability: Reachability!

do {

reachability = try Reachability.reachabilityForInternetConnection()

} catch {

print("Unable to create Reachability")

return

}

// 检测网络连接状态

if reachability.isReachable() {

print("网络连接:可用")

} else {

print("网络连接:不可用")

}

// 检测网络类型

if reachability.isReachableViaWiFi() {

print("网络类型:Wifi")

} else if reachability.isReachableViaWWAN() {

print("网络类型:移动网络")

} else {

print("网络类型:无网络连接")

}

3. 监听网络变化

// 网络可用或切换网络类型时执行

reachability.whenReachable = { reachability in

// 判断网络状态及类型

}

// 网络不可用时执行

reachability.whenUnreachable = { reachability in

// 判断网络状态及类型

}

do {

// 开始监听

try reachability.startNotifier()

} catch {

print("Unable to start notifier")

}

停止监听调用reachability.stopNotifier()即可。

四、项目地址

swift php 类型判断,iOS开发 - Swift实现检测网络连接状态及网络类型相关推荐

  1. iOS开发Swift篇—(六)流程控制

    iOS开发Swift篇-(六)流程控制 一.swift中的流程控制 Swift支持的流程结构如下: 循环结构:for.for-in.while.do-while 选择结构:if.switch 注意:这 ...

  2. 李洪强iOS开发Swift篇—02_变量和常量

    李洪强iOS开发Swift篇-02_变量和常量 一.语言的性能 (1)根据WWDC的展示 在进行复杂对象排序时Objective-C的性能是Python的2.8倍,Swift的性能是Python的3. ...

  3. iOS开发 swift 3dTouch实现 附代码

    iOS开发 swift 3dTouch实现 附代码 一.What? 从iphone6s开始,苹果手机加入了3d touch技术,最简单的理解就是可以读取用户的点击屏幕力度大小,根据力度大小给予不同的反 ...

  4. iOS(一):Swift纯代码模式iOS开发入门教程

    Swift纯代码模式iOS开发入门教程 项目初始化(修改为纯代码项目) 安装第三方库(以`SnapKit`库为例) 桥接OC库(QMUIKit) 封装视图并进行导航跳转 示例:使用 `TangramK ...

  5. iOS开发Swift语言学习教程-欧阳坚-专题视频课程

    iOS开发Swift语言学习教程-16345人已学习 课程介绍         Swift这套视频是针对有Objective-C/iOS基础,想转成Swift开发的学习视频,视频中从Swift语法,结 ...

  6. Xamarin iOS开发中的编辑、连接、运行

    Xamarin iOS开发中的编辑.连接.运行 创建好工程后,就可以单击Xamarin Studio上方的运行按钮,如图1.37所示,对HelloWorld项目进行编辑.连接以及运行了.运行效果如图1 ...

  7. Android 监听网络连接状态,判断网络连接方式,9.0网络连接,获取已连接WiFi名称SSID和MAC

    获取已连接的WiFi名称 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> ...

  8. iOS获取当前网络连接状态WiFi、5G、4G、3G、2G

    iOS获取网络连接状态 通过AFNetworking获取的网络状态只有未知.无网络连接.手机自带网络.WIFI,需求是需要准确的定位到是WiFi.5G.4G.3G.2G,所以AFNetworking并 ...

  9. 安卓实现判断手机网络连接状态是否联网,连接的是移动流量数据还是WIFI连接

    安卓实现判断手机网络连接状态是否联网,连接的是移动流量数据还是WIFI连接 开门见山地说,安卓APP在实际开发应用场景中很容易遇到需要判断网络连接状态的需求,毕竟对于手机APP来说,没有网络的情况并不 ...

最新文章

  1. 弹出ALV的几种方法(ALV POPUP)
  2. HarmonyOS之组件布局的创建和使用
  3. Convolutional Neural Networks for Sentence Classification-学习笔记
  4. requestbody接收不到参数_使用Spring MVC解析嵌套参数在三种 ContentType 下的绑定方式...
  5. mysql如何分析sql执行效率和进行效率优化
  6. GOAndroid的安装和配置
  7. 利用反射和xml配置文件手写一个小型的框架
  8. 找出一棵树某一深度所有节点
  9. 反转 鼠标_新版 Win10 中改变鼠标颜色
  10. Android 三星手机不能调起应用市场
  11. python __file__ is not defined 解决方法
  12. 没有人更比他懂基金业务:博格和他的先锋集团创业史(4):
  13. CSharp_DevExpress_DXperience_Universal_11.1.6 下载+源码+编译
  14. Android游戏开发–基本游戏架构
  15. Laplacian算子-Log算子-Dog算子边缘检测原理合集及实现
  16. ppt模板目录页如何排版设计?
  17. Linux--pthread_once 的用法
  18. 解决edge浏览器无法打开pdf文件问题
  19. 腾讯云找回自己用过的ip
  20. win10内存占用率过高怎么办_win10系统终极优化

热门文章

  1. Angular应用里的tsconfig.app.json
  2. SpringBoot里实现了某个接口的实现类运行时如何注入的?
  3. Hybris Commerce里的持久层
  4. configuration id is generated based on page guid
  5. 使用ABAP SAT工具分析SAP OData service实现明细
  6. try to navigate from button to line item page
  7. push failed in WebIDE
  8. SAP Cloud for Customer的Calculated field字段
  9. 如何处理My lead fiori应用的buffer问题
  10. ABAP webservice运行时的HTTP 307 redirect重定向是怎么来的