11.Xcode中实时监测网络状态

当我们开发一个网络应用程序时,我们需要实时监测网络状态,以展现不同的的内容。那么该如何实现呢?

1.首先要监测网络状态,我们得包含一个苹果提供的文件Reachability.m以及.h。

2.当我们的网络状态改变时,系统会发送通知,所以我们只需要监听该通知即可:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(networkStateChange) name:kReachabilityChangedNotification object:nil];
    self.conn = [Reachability reachabilityForInternetConnection];
    [self.conn startNotifier];

- (void)dealloc
{
    [self.conn stopNotifier];
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}

          注意: self.conn = [Reachability reachabilityForInternetConnection]; //该对象用于监听,所以保存成属性,使其不会被释放。

                    并且需要调用startNotifier方法开始监听。

3.在 -(void)networkStateChange方法中检查网络状态,并进行相关状态下的一些操作即可。

- (void)networkStateChange
{
    [self checkNetworkState];
}
- (void)checkNetworkState
{
    // 1.检测wifi状态
    Reachability *wifi = [Reachability reachabilityForLocalWiFi];
    
    // 2.检测手机是否能上网络(WIFI\4G\3G\2.5G)
    Reachability *conn = [Reachability reachabilityForInternetConnection];
    
    // 3.判断网络状态
    if ([wifi currentReachabilityStatus] != NotReachable) { // 有wifi
        NSLog(@"有wifi");
        
    } else if ([conn currentReachabilityStatus] != NotReachable) { // 没有使用wifi, 使用手机自带网络进行上网
        NSLog(@"使用手机自带网络进行上网");
        
    } else { // 没有网络
        
        NSLog(@"没有网络");
    }
}

通过以上方法,我们即可实时监听用户设备网络状态的改变,并进行相应的操作。

你可能感兴趣的:(网络,对象)