我使用 Reachability 类来了解我是否有可用的互联网连接。问题是当wifi可用但不能上网时,- (NetworkStatus) currentReachabilityStatus
方法花费太多时间。
my code:
Reachability* reachability = [Reachability reachabilityWithHostName:@"www.apple.com"];
NetworkStatus remoteHostStatus = [reachability currentReachabilityStatus];
应用程序暂时“冻结”在第二行。如何定义这个等待的最长时间?
我不这么认为。但更重要的是,如果可以的话,我认为您不会想要(您可能会得到误报)。让可达性顺其自然。
如果您查看 Reachability 演示项目,就会发现其概念并不是调用reachabilityWithHostName
并检查currentReachabilityStatus
当您需要互联网时。您在应用程序委托的 didFinishLaunchingWithOptions 期间调用 currentReachabilityStatus,设置通知,Reachability 会告诉您you当互联网连接发生变化时。我发现后续检查currentReachabilityStatus
当我 (a) 在启动时设置可达性时,速度非常快(无论连接性如何);但是 (b) 及时检查连接性。
如果您绝对需要立即开始处理,那么问题是您是否可以将其推入后台(例如dispatch_async()
)。例如,我的应用程序从服务器检索更新,但由于这是在后台发生的,所以我和我的用户都没有意识到任何延迟。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)