【问题标题】:Reachability on iOS 8 delayed?iOS 8 上的可达性延迟?
【发布时间】:2014-12-17 06:21:53
【问题描述】:

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

有没有更快的方法来获取通知?还是这个操作系统上的新方法?

【问题讨论】:

  • 五秒还不错,IMO
  • 如果对提前开始失败的网络调用做出反应,还不够好。

标签: ios ios8 reachability airplane


【解决方案1】:

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

这样您就可以知道什么是连接状态,而不是希望及时收到通知。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-02
    • 2015-06-14
    • 2014-12-21
    • 1970-01-01
    • 1970-01-01
    • 2020-10-03
    相关资源
    最近更新 更多