项目总结九:网络状态的监听

图片来自网络

现在开发的项目中,基本上都会涉及网络连接,那么项目中处理好网络连接状态就很有必要了。但是如果每一次的网络请求前都进行一次当前的网络状态查询显然是不科学的,所以就需要来设置一个全局的网络查询方法,对当前的网络连接状态进行实时监听。

苹果给出了一个第三方Reachability来监听网络状态,网上很多的第三方也是在此基础上封装而来。这里使用的是 AFNetworking 3.x中 AFNetworkReachabilityManager检测。AFNetworkReachabilityManager是AFNetworking中,独立的模块,用来实时监测网络变化的。

主要可以监测出的状态有:1、无网络 2、Wifi网络 3、蜂窝网络 4、未知网络

使用方法:在Appdelegate文件中

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

[[AFNetworkReachabilityManager sharedManager] startMonitoring];

}

在基类的BaseViewController,

- (void)viewDidLoad {

[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(notifi:) name:AFNetworkingReachabilityDidChangeNotification object:nil];

}中注册通知

- (void)notifi:(NSNotification *)noti{

//自定义代码,显示提示语就行

}

项目中使用AFNetworkReachabilityManager的情况有以下几种,根据不同情况提示不同的提示语:

(1)进行网络请求前,检查网络状态

(2)网络切换过程中

(3)正常使用中,突然断网了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,390评论 19 139
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,205评论 4 61
  • iOS开发系列--网络开发 概览 大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博、微信等,这些应用本身可...
    lichengjin阅读 9,145评论 2 7
  • 实际iOS开发中,在网络通信中我们大部分使用第三方(只谈短链),譬如 AFNetworking、ASIHttpRe...
    qiyer阅读 7,814评论 1 3
  • 昨天,因为优考了89分的数学单项检测,每个人的情绪都不好。又因为圣诞礼物的问题,优顶嘴,我也终没能控制住情绪。和...
    遁格阅读 1,306评论 0 0