iOS开发——Reachability和AFNetworking判断网络连接状态

来源:互联网 发布:java二维码生成器源码 编辑:程序博客网 时间:2024/05/10 18:56
一、Reachability// 监听网络状态改变的通知[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(networkStateChange) name:kReachabilityChangedNotification object:nil];// 创建Reachabilityself.conn = [Reachability reachabilityForInternetConnection];// 开始监控网络(一旦网络状态发生改变, 就会发出通知kReachabilityChangedNotification)[self.conn startNotifier];// 处理网络状态改变- (void)networkStateChange{    // 1.检测wifi状态    Reachability *wifi = [Reachability reachabilityForLocalWiFi];        // 2.检测手机是否能上网络(WIFI\3G\2.5G)    Reachability *conn = [Reachability reachabilityForInternetConnection];        // 3.判断网络状态    if ([wifi currentReachabilityStatus] != NotReachable) {      // 有wifi        NSLog(@"有wifi");    } else if ([conn currentReachabilityStatus] != NotReachable) {      // 没有使用wifi, 使用手机自带网络进行上网        NSLog(@"使用手机自带网络进行上网");    } else {      // 没有网络        NSLog(@"没有网络");    }}  二、AFNetworking// 1.获得网络监控的管理者AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];// 2.设置网络状态改变后的处理[manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {   // 当网络状态改变了, 就会调用这个block   switch (status) {     case AFNetworkReachabilityStatusUnknown:       // 未知网络       NSLog(@"未知网络");       break;     case AFNetworkReachabilityStatusNotReachable:       // 没有网络(断网)       NSLog(@"没有网络(断网)");       break;     case AFNetworkReachabilityStatusReachableViaWWAN:       // 手机自带网络       NSLog(@"手机自带网络");       break;     case AFNetworkReachabilityStatusReachableViaWiFi:       // WIFI       NSLog(@"WIFI");       break;   } }]; // 3.开始监控 [manager startMonitoring];
原创粉丝点击