iOS之Reachability和AFN判断网络连接状态

来源:互联网 发布:绘制贴图的软件 编辑:程序博客网 时间:2024/04/30 09:23
1.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(@"没有网络");    }}2.AFN// 1.获得网络监控的管理者AFNetworkReachabilityManager *mgr = [AFNetworkReachabilityManager sharedManager];// 2.设置网络状态改变后的处理[mgr 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.开始监控[mgr startMonitoring];
0 0
原创粉丝点击