确定在iPhone上出现中断后边缘连接何时恢复

确定在iPhone上出现中断后边缘连接何时恢复,iphone,cocoa-touch,networking,connection,Iphone,Cocoa Touch,Networking,Connection,我已经将苹果公司的可达性样本整合到我自己的项目中,这样我就知道我是否有网络连接——如果我没有网络连接,我就不用麻烦发送和请求了。我决定使用状态通知实现,因为它似乎更容易在后台更新可达性并立即提供当前结果,而不是在我想要建立网络连接时启动同步请求 我的问题是,当我在边缘网络上时,我开始出现误报——手机具有连接能力,但应用程序认为情况并非如此。我的理解是,当出现边缘连接时,您不会收到通知,因此我的假设是,我在某个点丢失并恢复了连接。重启应用程序通常足以查看网络连接 这不是一个最优的解决方案,所以我想

我已经将苹果公司的可达性样本整合到我自己的项目中,这样我就知道我是否有网络连接——如果我没有网络连接,我就不用麻烦发送和请求了。我决定使用状态通知实现,因为它似乎更容易在后台更新可达性并立即提供当前结果,而不是在我想要建立网络连接时启动同步请求

我的问题是,当我在边缘网络上时,我开始出现误报——手机具有连接能力,但应用程序认为情况并非如此。我的理解是,当出现边缘连接时,您不会收到通知,因此我的假设是,我在某个点丢失并恢复了连接。重启应用程序通常足以查看网络连接

这不是一个最优的解决方案,所以我想知道是否有其他人遇到过这个问题,并且对解决方案有任何想法


(我不知道这是否也适用于3G;我运行的是第一代iPhone)。

对于检测Wi-Fi而言,可达性通知对我来说似乎也不可靠。所以我只是用投票来代替。每5秒钟检查一次似乎没有什么坏处

- (void) checkReachability {
    BOOL connected = ([[Reachability sharedReachability] localWiFiConnectionStatus] == ReachableViaWiFiNetwork);

    // Do something...

    [self performSelector:@selector(checkReachability) withObject:nil afterDelay:5.0];
}

网络上有一个很好的可达性示例。它工作得非常好:

但是你看,当我试着用我自己的方式使用它时,它只是爆炸

已尝试使用以下方法实现此功能:

NSString *sCellNetwork;     
 NSString *sNetworkReachable;  

if (flags & kSCNetworkFlagsReachable || flags & kSCNetworkReachabilityFlagsIsWWAN)

{do it} 

 else {
   Network fail alert; 
}

谢谢我今天计划合并可达性,所以你可能为我未来的自己节省了一些时间:)嘿,我该如何使用这个类。我现在在我的appDelegate中添加了Reachability.h和Reachability.m文件以及importedreachability.h文件。当我将你的方法放入我的appDelegate中时,我发现了错误。在过去的一年中,可访问性代码发生了重大变化。因此,上述代码将不再有效。