使用Reachability实时监测网络连通性

在开发ios应用是我匀经常要使用网络,还得监控网络的连接情况,当网络发生改变时进行对应的事件处理工作。下面就讲解一下利用Reachability进行网络边连接情况监测的使用方法。

要使用Reachability进行网络监控必须先导进Reachability.h和Reachability.m两个方件。

在.h文件中声明一个全局的Reachability类,代码如下:

#import

#import "Reachability.h"

@interface AppDelegate : UIResponder {

Reachability *hostReach;

}

@property (strong, nonatomic) UIWindow *window;

@end

在.m文件中加入对应的代码

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

{

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

// Override point for customization after application launch.

//监测网络情况

[[NSNotificationCenter defaultCenter] addObserver:self

selector:@selector(reachabilityChanged:)

name: kReachabilityChangedNotification

object: nil];

//初始化Reachability类,并添加一个监测的网址。

hostReach = [Reachability reachabilityWithHostName:@"http://blog.sina.com.cn/u/2526279194"];

//开始监测

[hostReach startNotifier];

self.window.backgroundColor = [UIColor whiteColor];

[self.window makeKeyAndVisible];

return YES;

}

#pragma mark - 监测网络情况,当网络发生改变时会调用

- (void)reachabilityChanged:(NSNotification *)note {

Reachability* curReach = [note object];

NSParameterAssert([curReach isKindOfClass: [Reachability class]]);

NetworkStatus status = [curReach currentReachabilityStatus];

if (status == NotReachable) {

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil

message:@"NotReachable"

delegate:nil

cancelButtonTitle:@"YES" otherButtonTitles:nil];

[alert show];

alert = nil;

}

}

时间: 2024-10-26 15:47:23

使用Reachability实时监测网络连通性的相关文章

AFNetworking实时监测网络连接

?// 网络变化消息 [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(checkNetwork) name: kReachabilityChangedNotification object: nil]; Reachability *reach = [Reachability reachabilityWithHostname: @"www.baidu.com"]; // 开始监听 [r

iOS使用Reachability实时检测网络连接状况

//在程序的启动处,开启通知 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //..... //开启网络状况的监听 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name: kR

Reachability实时监控网络变化

Reachability是一种实时观察网络发生变化控件,如当你的手机处于WiFi情况下,他就会检测环境,当处于GPS的情况下改变环境,当处于无网络的情况下又是一种环境.下面我们看下关于Reachability的用法. 1.用到Reachability的情况下,首先引入SystemConfiguration: Reachability.h: #import <Foundation/Foundation.h>#import <SystemConfiguration/SystemConfigu

iOS开发-Reachability实时检测Wifi,2G/3G/4G/网络状态

最近遇到一个功能就是根据用户当前的网络状,用户未联网需要提示一下,如果是Wifi可以推荐一些图片新闻,如果是3G模式设置为无图的模式,获取网络状态比较简单,毕竟中国现在的流量还是一个比较贵的状态,哪天用户发现App消耗流量过多说不定就干掉了App.不过苹果的Reachability都解决了以上问题,使用起来也比较方便,具体的稍微简单分析一下. Reachability.h头文件代码: #import <Foundation/Foundation.h> #import <SystemCon

[iOS 多线程 &amp; 网络 - 2.8] - 检测网络状态

A.说明 在网络应用中,需要对用户设备的网络状态进行实时监控,有两个目的:(1)让用户了解自己的网络状态,防止一些误会(比如怪应用无能)(2)根据用户的网络状态进行智能处理,节省用户流量,提高用户体验 WIFI\3G网络:自动下载高清图片 低速网络:只下载缩略图 没有网络:只显示离线的缓存数据 苹果官方提供了一个叫Reachability的示例程序,便于开发者检测网络状态https://developer.apple.com/library/ios/samplecode/Reachability

linux nload命令简介及安装方法

第一步:nload命令简介 nload 命令用于查看linux网络流量状况,实时输出.可以理解为是一个控制台应用程序,用来实时监测网络流量和带宽使用情况的命令. 使用可视化的界面显示流入和留出系统的网络带宽数据. 安装后的使用截图(screenshot)如下: 第二步:nload下载 安装前最好安装以下依赖 yum install gcc gcc-c++ ncurses-devel  官网为:http://www.roland-riegel.de/nload/ xshell登陆到linux,然后

iOS开发之AFN的基本使用

本篇将从四个方面对iOS开发中经常使用到的AFNetworking框架进行讲解: 一.什么是 AFN 二.为什么要使用 AFN 三.AFN 怎么用 三.AFN和ASI的区别 一.什么是 AFN AFN 全称为 AFNetworking,是一个构建与在 NSURLConnection.NSOperation 以及其他熟悉的 Founation 技术之上的一个第三方网络框架. 二.为什么要使用 AFN AFN 对网络请求部分做了很好的封装,并且拥有良好的架构,丰富的api,以及模块化构建方式,使得使

【2017年最新】iOS面试题及答案

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px "PingFang SC Semibold"; color: #464646 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px "PingFang SC"; min-height: 21.0px } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px

科来网络分析系统11.1(技术交流免费版)

本人在网上学习的时候发现一款免费分析软件 个人感觉挺不错的现在共享出来 链接: https://pan.baidu.com/s/1iuavc1TLuhqEvb_eUqr6CQ 密码: q3tx 无需注册,无需激活,免费使用! 如果您需要对网络进行管理,或者网络遇到过不稳定,容易出现故障,经常受到网络攻击,请使用科来网络分析系统技术交流版(非商业授权). 科来网络分析系统是一款专业的通过抓取网络数据包进行网络检测,网络协议分析工具,可实时监测网络传输数据,全面透视整个网络的动态信息.除了能实时检测