如何在ios上定义可达性超时

Ant*_*ony 6 objective-c reachability ios

我使用Reachability类来了解我是否有可用的Internet连接.问题是当wifi可用而不是互联网时,该- (NetworkStatus) currentReachabilityStatus方法需要花费太多时间.

我的代码:

Reachability* reachability = [Reachability reachabilityWithHostName:@"www.apple.com"];
NetworkStatus remoteHostStatus = [reachability currentReachabilityStatus];
Run Code Online (Sandbox Code Playgroud)

应用程序暂时"冻结"在第二行.如何定义等待的最长时间?

Rob*_*Rob 3

我不这么认为。但更重要的是,如果可以的话,我认为您不会想要(您可能会得到误报)。让可达性顺其自然。

如果您查看 Reachability 演示项目,就会发现其概念并不是在需要 Internet 时调用reachabilityWithHostName和检查。currentReachabilityStatus您可以在应用程序委托的 didFinishLaunchingWithOptions 期间调用 currentReachabilityStatus,设置通知,Reachability 会在 Internet 连接发生更改时告诉您。我发现currentReachabilityStatus当我(a)在启动时设置可达性时,后续检查非常快(无论连接性如何);但是 (b) 及时检查连接性。

如果您绝对需要立即开始处理,那么问题是您是否可以将其推入后台(例如dispatch_async())。例如,我的应用程序从服务器检索更新,但因为这是在后台发生的,所以我和我的用户都没有意识到任何延迟。