网络链路调节器100%丢包 - 为什么我的互联网可达性状态错误?

时间:2014-11-17 05:36:59

标签: ios reachability

我正在使用“可达性”类检查互联网可达性的状态。但是在测试时,如果我在开发人员设置中设置 100%数据包丢失,我仍然可以获得“ReachableViaWiFi”的可达性状态。我很困惑正在发生的事情。那种情况下不应该是“NotReachable”吗?

这是我的代码段:

Reachability *networkReachability = [Reachability reachabilityForInternetConnection];
NetworkStatus networkStatus = [networkReachability currentReachabilityStatus];

if(networkStatus == NotReachable){
    NSLog(@"NotReachable");
}
else if(networkStatus == ReachableViaWiFi){
    NSLog(@"ReachableViaWiFi");
}
else if(networkStatus == ReachableViaWWAN){
    NSLog(@"ReachableViaWWAN");
}

在这种情况下,有没有其他方式可以让我的状态为FALSE?

2 个答案:

答案 0 :(得分:3)

您丢失的数据包数量不会影响可达性。毕竟,这可能只是暂时的(你把你的手机带进了一个屏蔽的房间,或刚刚开启的重型电动机)。可达性是关于您的WiFi,或3G,或Mac上的以太网,打开。它不是关于连接的质量。

答案 1 :(得分:0)

这对我有用:

-(BOOL)connected
{
    Reachability *r = [Reachability reachabilityWithHostName:@"www.google.com"];
    NetworkStatus internetStatus = [r currentReachabilityStatus];

    if ((internetStatus != ReachableViaWiFi) && (internetStatus != ReachableViaWWAN))
    {
        return NO;
    }
    else
    {
        return YES;
    }
}