我正在使用“可达性”类检查互联网可达性的状态。但是在测试时,如果我在开发人员设置中设置 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?
答案 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;
}
}