Reachability是苹果官方提供的一个类,方便开发者用于网络监控的实现。可以在下载
检测网络状态
1.主动监测网络状态
2.监控网络状态
1)监听网络状态
// 监听网络状态发生改变的通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(networkStateChange) name:kReachabilityChangedNotification object:nil];
2)开始监听
// 获得Reachability对象
self.reachability = [Reachability reachabilityForInternetConnection];//必须设置全局变量self.reachability且强引用 ,否则在出了放置该语句的方法后,就不再监听;
// 开始监控网络
[self.reachability startNotifier];
3)移除监听
[self.reachability stopNotifier];
[[NSNotificationCenter defaultCenter] removeObserver:self];
(void)networkStateChange{
NSLog(@”网络状态改变了”);
[self checkNetworkState];
}(void)touchesBegan:(NSSet )touches withEvent:(UIEvent )event{
[self checkNetworkState];
}
/**
* 监测网络状态
*/
- (void)checkNetworkState{
if ([HMNetworkTool isEnableWIFI]) {
NSLog(@”WIFI环境”);
} else if ([HMNetworkTool isEnable3G]) {
NSLog(@”手机自带网络”);
} else {
NSLog(@”没有网络”);
}
}
//注:HMNetworkTool是一个装有方法类:
+ (BOOL)isEnableWIFI {
return ([[Reachability reachabilityForLocalWiFi] currentReachabilityStatus] != NotReachable);
}
// 是否3G
+ (BOOL)isEnable3G {
return ([[Reachability reachabilityForInternetConnection] currentReachabilityStatus] != NotReachable);
}