网络连接状态检查

网络连接状态检查步骤:

准备工作:将Reachability.hm文件导入到项目中,然后引入SystemConfiguration.framework

 

//1、首先获取一个连接(Reachability类的类方法reachabilityWithHostName:方法)

//2、然后获取连接状态Reachability类的实例方法currentReachabilityStatus,该方法返回一个NetworkStatus枚举值

//3、根据NetworkStatus枚举值判断连接状态(NotReachable:不可连接,ReachableViaWiFi:可以通过WIFI连接,ReachableViaWWAN:可以通过2G/3G/4G网络连接)

 

参考代码如下:

//获取一个连接

    Reachability *host
Reach = [Reachability reachabilityWithHostName: @"www.apple.com"];

    //获取连接状态

    NetworkStatus netStatus = [hostReachcurrentReachabilityStatus];

    switch (netStatus) {

        case NotReachable:

            NSLog(@"不可连接");

            break;

        case ReachableViaWiFi:

            NSLog(@"可以通过WIFI连接");

            break;

        case ReachableViaWWAN:

            NSLog(@"可以通过2G/3G/4G网络连接");

            break;

}

 

 

也可以通过注册通知中心,观察网络连接发生变化的通知,步骤:

//1、注册通知中心,观察网络连接发生变化的通知

//2、实例化连接,并且启动监测(Reachability类的实例方法startNotifier启动监测)

//3、实现网络状态发生变化后调用的方法,在方法内完成网络连接状态检查步骤

 

 

参考代码如下:

- (void)viewDidLoad

{

    [super viewDidLoad];

      // Do any additionalsetup after loading the view, typically from a nib.

    //注册通知中心,观察网络连接发生变化的通知

    [[NSNotificationCenterdefaultCenter] addObserver: self selector: @selector(networkChanged:) name:kReachabilityChangedNotification object: nil];

   

    //实例化连接,并且启动监测

    self.hostReach =[Reachability reachabilityWithHostName: @"www.apple.com"];

    [self.hostReachstartNotifier];

   

}

//网络状态发生变化后,调用的方法

-(void)networkChanged:(NSNotification*) notification

{

    //获取一个连接

   

    //获取连接状态

    NetworkStatus netStatus = [self.hostReachcurrentReachabilityStatus];

    switch (netStatus) {

        case NotReachable:

            self.lblStatus.text = @"不可连接";

            break;

        case ReachableViaWiFi:

            self.lblStatus.text = @"可以通过WIFI连接";

            break;

        case ReachableViaWWAN:

            self.lblStatus.text = @"可以通过2G/3G/4G网络连接";

            break;

    }

 

}


你可能感兴趣的:(网络连接)