iOS 8的可达性延迟了吗?

时间:2014-10-21 21:26:06

标签: ios ios8 reachability airplane

当用户将设备置于飞行模式时,Apple Reachability示例代码中的Reachability类似乎会严重延迟。我看到用户进入飞机模式与实际通知之间大约有5秒的差距。

是否有更快捷的方式获取通知?或者这个操作系统的新方法?

1 个答案:

答案 0 :(得分:0)

我构建了一个轮询连接的示例,而不是依赖于通知。因此,只需使用Reachability样本并检查连接性,即可确定您是否仍然连接。

- (NetworkStatus)currentReachabilityStatus
{
    NSAssert(_reachabilityRef != NULL, @"currentNetworkStatus called with NULL SCNetworkReachabilityRef");
    NetworkStatus returnValue = NotReachable;
    SCNetworkReachabilityFlags flags;

    if (SCNetworkReachabilityGetFlags(_reachabilityRef, &flags))
    {
        if (_alwaysReturnLocalWiFiStatus)
        {
            returnValue = [self localWiFiStatusForFlags:flags];
        }
        else
        {
            returnValue = [self networkStatusForFlags:flags];
        }
    }

    return returnValue;
}

通过这种方式,您可以了解连接状态,而不是希望按时获取通知。