一、说明
监测网络状态的意义:
1.通过对网络状态的监控,可以让应用在联网与不联网这两种状态中,做出相应的响应
2.及提醒用户,现在是处在什么网络状态下。

二、方法
苹果官方提供了一个叫Reachability的示例程序
https://developer.apple.com/library/ios/samplecode/Reachability/Reachability.zip

1.添加框架SystemConfiguration.framework

Xcode -> “项目” -> Build Phases -> Link Binary With Libraries -> +
![图片描述][1]

2.添加两个源代码文件

Reachability.h
Reachability.m
![图片描述][2]

3.在桥接头文件中引入

#import "Reachability.h"

4.代码示例

override func viewDidLoad() {
    //添加通知,当收到通知时,调用inspectNetworkState()方法
    let center = NSNotificationCenter.defaultCenter()
    center.addobserver(self,selector: Selector(inspectNetworkState()),name: kReachabilityChangednotification,object: nil)
}
    
func inspectNetworkState() {
    //监测wifi状态
    let wifi = Reachability.reachabilityForLoaclWifi()
    
    //监测手机是否能连移动网络(2g/3g)
    let mobile = Reachability.reachabilityForInternetConnection()
    
    //判断网络的状态
    if (wifi.currentReachabilityStatus() != NotReachable) {
        print("当前是wifi网络")
    } else if (mobile.currentReachabilityStatus() != NotReachable) {
        print("当前是移动3g/4g网络")
    } else {
        print("当前无网络")
    }
}

swift 监测网络状态的更多相关文章

  1. 你如何将xcode项目转换为cocoapod?

    我有一段代码,我发现我在多个不同的项目中重复使用,所以我想把它变成一个cocoapod并使用私人cocoapod仓库.我的问题是如何将xcode项目设置为cocoapod?它应该是一个静态库还是一个带有appdelegate的空“项目”?

  2. iOS:reachabilityWithHostname YES虽然它应该是NO

    即应用程序不断检查给定的主机是否真的可以访问?开发人员可以创建网络连接并尝试连接到主机并查看它是通过还是失败.然而有趣的是,如果提供像“www.hjjkhkhk.com”这样的无效主机,iOS系统会将可达性视为错误.现在的问题是iOS系统如何在不向外界发送任何查询的情况下找到有效或无效的主机?可能是它定期缓存DNS范围列表???

  3. 如何从iOS可达性类更改网络连接通知?

    解决方法我使用appdelegate中的变量将当前网络状态存储为bool.M

  4. 在iOS中检查Internet连接的最佳方法

    如果谷歌关闭怎么办?如果该应用在不允许使用google.com的国家/地区使用,结果是什么?因此,如果这些选项是正确的方式,或者有更好的方法来检查互联网,保证100%的结果,并且在IPv4和IPv6网络中均可使用,那么我一直处于选择的选择中.任何人都可以建议我哪个选项更好或者我应该采取其他方法,有什么是更好的方法来实现这一目标.非常感谢您的回复.解决方法对于Swift3,Xcode8……

  5. swift 监测网络状态

    一、说明监测网络状态的意义:1.通过对网络状态的监控,可以让应用在联网与不联网这两种状态中,做出相应的响应2.及提醒用户,现在是处在什么网络状态下。

  6. Swift实时监听网络状态更新到Swift3

    (直接找到Reachability.swift文件拖到你的项目中就可以啦。)第二步,进入到ViewController文件如果编译无误的话,运行程序后在电脑上输出些内容,这是尝试切换网络状态试试,有没有提示。我自己在真机上测试成功。

  7. swift 监听网络变化

    方法二:viewController中调用监听网络变化参考:http://blog.csdn.net/json_vip/article/details/51754881http://blog.csdn.net/zhang5690800/article/details/51995716

  8. Swift - 判端网络连接状态,连接类型3G还是Wifi

    1,Reachability.swift是一个使用Swift写的第三方网络检测类。可以测试网络是否连接,并支持3G和Wifi的检测。overridefuncviewDidLoad(){super.viewDidLoad()}@IBActioncheckConnect{letreachability=Reachability.reachabilityForInternetConnection()//判断连接状态ifreachability!.isReachable(){statusLabel.text="网

  9. Swift 2 – UnsafeMutablePointer到对象

    如果我有一个方法如:如何从contextPtr获取对象?

  10. 检查Swift中的网络状态

    如何在Swift中检查网络状态?在Objective-C中Reachability.h.m文件可用.现在怎么办?我如何检查我是在线还是离线?您仍然可以在Swift中使用可达性.Logan对于如何将objective-c文件添加到桥接头here中有一个很好的答案.一旦您设置了桥接头,就可以从Swift代码调用Reachability方法.这样的事情会起作用:

随机推荐

  1. Swift UITextField,UITextView,UISegmentedControl,UISwitch

    下面我们通过一个demo来简单的实现下这些控件的功能.首先,我们拖将这几个控件拖到storyboard,并关联上相应的属性和动作.如图:关联上属性和动作后,看看实现的代码:

  2. swift UISlider,UIStepper

    我们用两个label来显示slider和stepper的值.再用张图片来显示改变stepper值的效果.首先,这三个控件需要全局变量声明如下然后,我们对所有的控件做个简单的布局:最后,当slider的值改变时,我们用一个label来显示值的变化,同样,用另一个label来显示stepper值的变化,并改变图片的大小:实现效果如下:

  3. preferredFontForTextStyle字体设置之更改

    即:

  4. Swift没有异常处理,遇到功能性错误怎么办?

    本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@foxmail.com举报,一经查实,本站将立刻删除。

  5. 字典实战和UIKit初探

    ios中数组和字典的应用Applicationschedule类别子项类别名称优先级数据包contactsentertainment接触UIKit学习用Swift调用CocoaTouchimportUIKitletcolors=[]varbackView=UIView(frame:CGRectMake(0.0,0.0,320.0,CGFloat(colors.count*50)))backView

  6. swift语言IOS8开发战记21 Core Data2

    上一话中我们简单地介绍了一些coredata的基本知识,这一话我们通过编程来实现coredata的使用。还记得我们在coredata中定义的那个Model么,上面这段代码会加载这个Model。定义完方法之后,我们对coredata的准备都已经完成了。最后强调一点,coredata并不是数据库,它只是一个框架,协助我们进行数据库操作,它并不关心我们把数据存到哪里。

  7. swift语言IOS8开发战记22 Core Data3

    上一话我们定义了与coredata有关的变量和方法,做足了准备工作,这一话我们来试试能不能成功。首先打开上一话中生成的Info类,在其中引用头文件的地方添加一个@objc,不然后面会报错,我也不知道为什么。

  8. swift实战小程序1天气预报

    在有一定swift基础的情况下,让我们来做一些小程序练练手,今天来试试做一个简单地天气预报。然后在btnpressed方法中依旧增加loadWeather方法.在loadWeather方法中加上信息的显示语句:运行一下看看效果,如图:虽然显示出来了,但是我们的text是可编辑状态的,在storyboard中勾选Editable,再次运行:大功告成,而且现在每次单击按钮,就会重新请求天气情况,大家也来试试吧。

  9. 【iOS学习01】swift ? and !  的学习

    如果不初始化就会报错。

  10. swift语言IOS8开发战记23 Core Data4

    接着我们需要把我们的Rest类变成一个被coredata管理的类,点开Rest类,作如下修改:关键字@NSManaged的作用是与实体中对应的属性通信,BinaryData对应的类型是NSData,CoreData没有布尔属性,只能用0和1来区分。进行如下操作,输入类名:建立好之后因为我们之前写的代码有些地方并不适用于coredata,所以编译器会报错,现在来一一解决。

返回
顶部