以前做网络监测的时候一直用的苹果给提供的Reachability,后来发现AFN自带的也有,而且感觉使用更方便(前提是我的网络请求用的就是AFN的),现总结了一下,便于参考!
一、AFNetworing检测网络
AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];
[manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
// 当网络状态改变时调用
switch (status) {
case AFNetworkReachabilityStatusUnknown:
NSLog(@"未知网络");
break;
case AFNetworkReachabilityStatusNotReachable:
NSLog(@"没有网络");
break;
case AFNetworkReachabilityStatusReachableViaWWAN:
NSLog(@"手机自带网络");
break;
case AFNetworkReachabilityStatusReachableViaWiFi:
NSLog(@"WIFI");
break;
}
}];
//开始监控
[manager startMonitoring]
二、Reachability
1.注册通知
[[NSNotificationCenter defaultCenter]addObserver:self
selector:@selector(networkStateChange) name:kReachabilityChangedNotification object:nil];
// 创建Reachability
Reachability *reachability = [Reachability reachabilityForInternetConnection];
// 开始监控网络(一旦网络状态发生改变, 就会发出通知kReachabilityChangedNotification)
[reachability startNotifier];
2.监听方法
- (void)networkStateChange
{
// 1.检测网络状态
Reachability *wifi = [Reachability reachabilityForLocalWiFi];
// 2.检测手机是否能上网络
Reachability *connect = [Reachability reachabilityForInternetConnection];
// 3.判断网络状态
if ([wifi currentReachabilityStatus] != NotReachable) {
NSLog(@"有wifi");
}
else if ([connect currentReachabilityStatus] != NotReachable) {
NSLog(@"使用手机自带网络进行上网");
}
else {
NSLog(@"没有网络");
}
}