zoukankan      html  css  js  c++  java
  • iOS开发——Reachability和AFNetworking判断网络连接状态

      一、Reachability
    // 监听网络状态改变的通知
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(networkStateChange) name:kReachabilityChangedNotification object:nil];
    
    // 创建Reachability
    self.conn = [Reachability reachabilityForInternetConnection];
    // 开始监控网络(一旦网络状态发生改变, 就会发出通知kReachabilityChangedNotification)
    [self.conn startNotifier];
    
    // 处理网络状态改变
    - (void)networkStateChange
    {
        // 1.检测wifi状态
        Reachability *wifi = [Reachability reachabilityForLocalWiFi];
        
        // 2.检测手机是否能上网络(WIFI3G2.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];
  • 相关阅读:
    Ext.Ajax.request 传值问题
    类型反射与晚期绑定
    .net使用外部程序集拓展功能
    C#求解哈夫曼树
    几种获取操作系统语言的方法及其相似点与不同点
    C#调用非托管代码(C++方法)的2种方式
    构建可终结类型和可处置类型
    dockercompose 安装配置neo4j
    Windows 7 SDK Fails to Install with Return Code 5100 (GRMSDK_EN_DVD.iso)
    mysql密码修改方法
  • 原文地址:https://www.cnblogs.com/yyt-hehe-yyt/p/5288820.html
Copyright © 2011-2022 走看看