• 利用Reachability实现网络状态监听


    时刻检查设备的联网状态,并作出相应的处理,基本上是所有的联网程序需要考虑的问题,以前自己写个NSTimer 每多少卖哦循环一次,后来觉得这个思维有些不爽,就直接用Reachability来实现了

    首先考虑要在每一个类都能用这个网络的判定结果,可以用一个单例写,怕麻烦的话 直接写在 AppDelegate也行。

    .h的操作

    @property (strong,nonatomic)Reachability *reachiability;

    @property (assign,nonatomic)BOOL isReachable;//是否可用

    @property (assign,nonatomic)NetworkStatus status;//判定状态用的

    .m里

     //开启网络状况的监听

        [[NSNotificationCenterdefaultCenter] addObserver:selfselector:@selector(reachabilityChanged:) name:kReachabilityChangedNotificationobject:nil];

        self.reachiability = [ReachabilityreachabilityWithHostname:@"www.baidu.com"];

        [self.reachiability startNotifier];  //开始监听,会启动一个run loop

    OK 剩下的就是实现reachabilityChanged:这个带有参数的方法了

    //网络链接改变时会调用的方法

    -(void)reachabilityChanged:(NSNotification *)note

    {

        Reachability *currReach = [note object];

        NSParameterAssert([currReach isKindOfClass:[Reachability class]]);

        //对连接改变做出响应处理动作

        self.status = [currReach currentReachabilityStatus];

        //如果没有连接到网络就弹出提醒实况

        self.isReachable = YES;

        switch (self.status) {

            case NotReachable:

            {

              //各种操作

                self.isReachable = NO;

            }

                break;

            caseReachableViaWiFi:

            {

              //各种操作

              self.isReachable = YES;

            }

                break;

            caseReachableViaWWAN:

            {

                //各种操作

                self.isReachable = YES;

            }

                break;

            default:

                break;

        }

    }

    在其他类里就可以用了~ 想判断是否有网络可以用 isReachable  想判断是什么网络可以用status~~

  • 相关阅读:
    UnityGUI Keynote
    Unity3D Asset 导入&导出
    Unity3d平台信息设置
    Unity3D自带Demo AngryBots路径
    如何判定Unity已破解成功
    fbx模型
    Init & Deinit & ARC
    Subscript & Inheritance
    Properties & Method
    Enumeration & Class & Structure
  • 原文地址:https://www.cnblogs.com/superhappy/p/3039682.html
Copyright © 2020-2023  润新知