使用多个视图控制器时的可达性检查

Posted

技术标签:

【中文标题】使用多个视图控制器时的可达性检查【英文标题】:Reachability check when several view controllers are used 【发布时间】:2012-08-04 04:02:13 【问题描述】:

我需要测试可达性,这个问题How to check for an active Internet connection on ios or OSX? 中提到的方法似乎很合适。但是我的应用程序使用了一个标签栏控制器,它又部署了多个视图控制器。我是否需要在每个视图控制器中实现可达性测试,或者我可以在 AppDelegate.m 中设置一次(然后在通知消息进入时设置一个 CONNECTION_OK 标志 [供视图控制器测试])?试图让事情尽可能简单。欢迎举例。

【问题讨论】:

【参考方案1】:

对我来说,我使用来自Apple 的那个。特别是这两类方法来检查 Internet 连接或本地 WiFi 可用性。我在需要连接到 Internet 或本地 WiFi 之前就这样做了。

//  Should be used by applications that do not connect to a particular host
+ (Reachability*) reachabilityForInternetConnection;
 
//reachabilityForLocalWiFi- checks whether a local wifi connection is available.
+ (Reachability*) reachabilityForLocalWiFi;

【讨论】:

【参考方案2】:

您正在考虑做的事情是正确的。您可以仅在 AppDelegate 中实现可达性检查并更新视图控制器可以查询的状态变量(您的 CONNECTION_OK 标志)。这是正确的方法之一(从编程风格的角度来看)。

【讨论】:

以上是关于使用多个视图控制器时的可达性检查的主要内容,如果未能解决你的问题,请参考以下文章

ios - 可达性通知多个警报

Xcode:使用情节提要的附加视图控制器上的可达性

使用 Reachability 2.2 检查 Internet 连接

如何在 iOS 中测试可达性并重试连接?

使用可达性通知用户互联网连接

刷新时的可达性问题