iOS获取网络状态
我们在开发中时常需要获取网络状态,比如下载文件需要判断网络是否连接状态,网络状态由Wi-Fi关闭时停止下载等操作。
最简单的方式就是通过AFNetworking框架:
switch ([[AFNetworkReachabilityManager sharedManager]networkReachabilityStatus]) {
case AFNetworkReachabilityStatusReachableViaWiFi://Wi-Fi,直接下载
[self downloadBundle];
break;
case AFNetworkReachabilityStatusReachableViaWWAN://流量,提示之后下载
alertAction = 1;
[self showAlert:@"网络提示" message:@"当前网络非Wi-Fi,下载可能会产生运营商费用,是否继续?"];
break;
default://网络不通,检查网络设置
alertAction = 2;
[self showAlert:@"网络异常" message:@"网络异常,打开设置?"];
break;
}
这里需要注意的是一定要先注册网络状态变化通知,才能使用上面获取网络状态的代码,否则网络状态获取不到。
注册网络状态通知代码:
- (void)regNetworkStatusNotification{
AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];
[manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
NSLog(@"网络状态:%ld",(long)status);
}];
[manager startMonitoring];
}