1

我已经为此苦苦挣扎了两天。 https://stackoverflow.com/questions/17077345/reachability-of-ip-address


最后我找到了解决方案,所以如果有人遇到同样的问题,请参阅下面的答案。

4

1 回答 1

1

经过几天的研究,我找到了解决方案。瓶颈是即使在“侦听”模式下也调用当前可达性状态,当使用 IP 地址初始化时(如下面的一个片段,没有其余应用程序上下文)。

if (isAddressReachability)
{
    dispatch_async(dispatch_queue_create("com.eppz.reachability.workaround", NULL), ^
    {
        SCNetworkReachabilityFlags flags;
        if (SCNetworkReachabilityGetFlags(self.reachabilityRef, &flags))
        {
            //'Manual' invocation of callback functionality.
            dispatch_async(dispatch_get_main_queue(), ^ //Dispatch delegate callback on the main thread.
            {
                [self parseFlags:flags];
                [self.delegate reachabilityChanged:self];
            });
        }
    });
}

更多详细信息请参见:http: //eppz.eu/blog/reachability-with-ip-address-doesnt-work/

于 2013-06-14T02:30:29.180 回答