ios实时的网络监控

1:我们项目中经常会用到获取用户当前的网络状态,是否有网,是否是wifi情况下

准备工作

1:从苹果官网上下载Reachability.zip,并且解压,这个类是苹果提供给我们,用于检测网络状态,下载解压好,拖拽到我们项目中

2:添加框架:SystemConfiguration.framework

开始编写代码

1:导入Reachability.h头文件

2:写一个属性@property(nonatomic,strong)Reachability* reach;

3:

//添加监听,当网络发生变化的时候,会发出通知,我们只需要监听就行(不要忘了移除监听)

-(void)dealloc

{

[[NSNotificationCenter defaultCenter] removeObserver:self];

}

- (void)viewDidLoad {

[[NSNotificationCenter defaultCenter] addObserver:self

selector:@selector(reachabilityChanged:)

name: kReachabilityChangedNotification

object: nil];

self.reach = [Reachability reachabilityWithHostName:@"www.baidu.com"];

[self.reach startNotifier]; //开始监听,会启动一个run loop

}

//实现方法,可以根据不同的状态来做想做的操作

- (void)reachabilityChanged: (NSNotification*)note

{

Reachability*curReach = [note object];

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

NetworkStatus status=[curReach currentReachabilityStatus];

switch (status) {

case ReachableViaWiFi:

case kReachableVia4G:

case kReachableVia2G:

case kReachableVia3G:

case NotReachable:

break;

default:

break;

}

}

4:判断当前网络状态

NSString *netconnType = NULL;

Reachability* reach = [Reachability reachabilityWithHostName:@"www.baidu.com"];

switch ([reach currentReachabilityStatus]) {

case NotReachable:

netconnType = @"NotReachable";

break;

case ReachableViaWiFi:

netconnType = @"WIFI";

break;

case ReachableViaWWAN:

netconnType = @"WWAN";

break;

case kReachableVia2G:

netconnType = @"2G";

break;

case kReachableVia3G:

netconnType = @"3G";

break;

case kReachableVia4G:

netconnType = @"4G";

break;

case kReachableViaOther:

netconnType = @"OTHER";

break;

default:

netconnType = NULL;

break;

}

return netconnType;

你可能感兴趣的:(ios实时的网络监控)