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

有更快的方法来获取通知吗?或此操作系统上的新方法?

最佳答案

我构建了一个轮询连接而不是依赖通知的示例。因此,只需使用 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;
}

通过这种方式,您可以知道连接状态是什么,而不是希望按时收到通知。

关于ios - iOS 8的可到达性延迟了吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26496648/

10-10 03:57