ios开发中需要根据联网的状态来进行一些不同的操作,比如下载,浏览图片等,所以需要得到当前网络的状态,
方法有两种,一种为使用AFNetworking,一种使用苹果官方提供的Reachability实例
1、AFNerworking:
AFNetworkReachabilityManager *mgr = [AFNetworkReachabilityManager sharedManager];// 拿到单例
[mgr setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { // 实时监控,回调block
NSLog(@"联网状态%zd",status);
}];
[mgr startMonitoring]; // Starts monitoring for changes in network reachability status.
2、苹果官方提供https://developer.apple.com/library/ios/samplecode/Reachability/Reachabilty.zip点击打开链接
下载包,将Reachability.h 和Reachability.m文件移到工程:
- (void)viewDidLoad {
[superviewDidLoad];
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil];
self.reachability = [Reachability reachabilityForInternetConnection]; // 接受网络改变通知,调用函数reachabilityChanged
[self.reachability startNotifier]; // 开始接受通知
}
-(void)reachabilityChanged:(NSNotification *)note //从通知里边取出
{
Reachability* reachability = [note object];
NetworkStatus netStatus = [reachability currentReachabilityStatus];
switch (netStatus)
{
caseNotReachable: {
NSLog(@"没有网络连接");
break;
}
caseReachableViaWWAN: {
NSLog(@"蜂窝网");
break;
}
caseReachableViaWiFi: {
NSLog(@"wifi连接");
break;
}
}
}