哪个行业最需要做网站,wordpress a,sem即,企业网站开发上海韵茵前言#xff1a;当应用程序需要访问网络的时候#xff0c;它首先应该检查设备的网络状态#xff0c;确认设备的网络环境及连接情况#xff0c;并针对这些情况提醒用户做出相应的处理。最好能监听设备的网络状态的改变#xff0c;当设备网络状态连接、断开时#xff0c;程… 前言当应用程序需要访问网络的时候它首先应该检查设备的网络状态确认设备的网络环境及连接情况并针对这些情况提醒用户做出相应的处理。最好能监听设备的网络状态的改变当设备网络状态连接、断开时程序也应该有相应的处理。 开发工具xcode6.3.2 操作系统OS X Yosemite10.10.4 学习来源《疯狂IOS讲义下》中的ios网络应用编程 1、下载添加Reachability类。 官网下载网址 https://developer.apple.com/library/prerelease/ios/samplecode/Reachability/Introduction/Intro.html#//apple_ref/doc/uid/DTS40007324-Intro-DontLinkElementID_2 获取下载的zip文件包找到里面的reachability.m和reachability.h然后放进工程下 2、 添加SystemConfiguration.framework框架 然后打开Main.storyborad界面设计文件添加1个UILabel、1个UITextField和3个UIButton并将它们摆放整齐如图 为了在程序钟访问界面上的文本框可以将文本框绑定到siteField IBOulet属性为了让程序能响应界面上3个按钮的点击事件还需要为“测试”按钮的“Touch Up Inside”事件绑定testNetStatus事件处理方法为“测试wifi”按钮的“Touch Up Inside”事件绑定testWifi事件处理方法为了“测试3G4G”按钮的“Touch Up Inside”事件绑定testInternet事件处理方法。 3、实现网络监听以及按钮测试的代码 要点 1如果是要自动监听手机联网的状态就需要使用默认的通知中心对象NSNotificationCenter defaultCenter来通过监听 kReachabilityChangedNotification通知并且当通知中心收到通知就触发另一个自定义的成员方法的reachabilityChanged:方法。 源代码写法 [[NSNotificationCenter defaultCenter] addObserver:self selector:selector(netChanged:) name:kReachabilityChangedNotification object:nil]; 2然后是不管是在上面创建通信中心之后还是在为按钮组件的触发点击事件绑定的代码中都要创建一个网络可达型对象(有两种) -1-Reachability reach Reachability reachabilityWithHostName:”www….” -2-Reachability reach Reachability reachabilityForInternetConnection 3然后通过Reachability对象获取当前网络状态 reach currentReachabilityStatus 这个方法返回的就是Reachability声明中声明了的枚举三个枚举值 typedef enum : NSInteger { NotReachable 0, ReachableViaWiFi, ReachableViaWWAN } NetworkStatus; 也就是说这三个值代表着网络连接三种状态。 另外补充 很奇怪的是和《疯狂IOS讲义下》8.1检测网络状态提供的源代码不一样的地方是以上网络状态除了绑定组件监听事件也就是自动监听网络状态的代码可以仅仅写在托管类AppDelegate.m中就可以运行ViewController.m可以不写任何代码就可以运行。 但是自己新建的oc程序然后按照同样的步骤压迫实现同样效果却需要额外的条件 必须在ViewController.h声明一个私有的成员变量 property (nonatomic,strong) Reachability *conn; 然后在ViewController.m中用conn创建一个Reachability对象并且 [conn startNotifier]。 然后才能在ViewController.m中或者AppDelegate.m中设置自动监听网络状态的代码。 ---------------------------------------------------------------------------------------------------------------------------------------------------------- 以上是本人半年前的学习积累其中关于最后的另外补充其实就是很基本的原因就是没有使用property的全局作用使得Reachability只能作用于某个方法内部从而会在程序运行过程中就会出现无效的结果。 下面是本人在2016年2月25日更新的网络监听代码使用快速一览 ----------------------------------------------------------------------------------------------------------------------------------------------------------