可达性:当Wifi关闭时,currentReachabilityStatus返回ReachableViaWifi

时间:2014-06-17 22:04:52

标签: ios reachability

根据标题,我已经关闭了我的iPhone上的Wifi并且它具有LTE连接,但是当我调用Reachability时:currentReachabilityStatus它返回ReachableViaWifi。代码是:

in the init:
        [[NSNotificationCenter defaultCenter] addObserver:self
                                                 selector:@selector(reachabilityChange:)
                                                     name:kReachabilityChangedNotification
                                                   object:nil];

        _reachability = [Reachability reachabilityWithHostName:[[MYURLs defaultServerBaseURL] host]];
        [_reachability startNotifier];
         NetworkStatus status = [_reachability currentReachabilityStatus];
        // here status is NotReachable
        ....


- (void) reachabilityChange: (NSNotification*) notification
{
    NetworkStatus status = [self.reachability currentReachabilityStatus];
   // here status is ReachableViaWifi
}

为什么Wifi被禁用时状态为ReachableViaWifi?

我在运行代码之前关闭了wifi。

3 个答案:

答案 0 :(得分:0)

reachabilityChange:中,不要调用[self.reachability currentReachabilityStatus],而是查看通知的对象。

- (void) reachabilityChange: (NSNotification*) notification {
    Reachability *reach = [notification object];
    NetworkStatus status = [reach currentReachabilityStatus];
}

答案 1 :(得分:0)

似乎这是iOS8 Beta中的一个错误,因为相同的代码会在iOS7中产生预期的结果。

答案 2 :(得分:0)

我刚遇到同样的问题。尽管如此,从Apple获取最新的Reachability类可以修复它。

Reachability