我正在开发一个使用网络的 iPhone 应用程序。iPhone 通过 HTTP 请求与我的服务器通信,应该可以在 WiFi 和 3G 上运行。
我目前用来NSURLConnection initWithRequest
向我的服务器发送异步请求并获得响应(但我很快就会开始使用ASIHTTPRequest
库)
我明白,对于这种应用程序(需要互联网连接的应用程序),我应该(必须?)使用可达性。
在网上搜索并查看 Apple 的 Reachability 示例代码后,我仍然不明白一些基本的东西:
可达性的主要目的是什么?
在苹果的示例中,它们检测主机、WiFi 和 3G 的网络问题,并向用户显示适当的消息。
这是可达性的主要目的,向用户显示消息吗?还是我需要将它用于其他更实际的场景?例如,如果NSURLConnaction
请求失败,我是否需要以某种方式使用可达性来重新发送请求?
什么是可达性的正确使用?
应用启动时只使用一个实例,然后监听网络变化是否很常见?或者我应该在每次网络请求之前检查自己的可达性状态吗?
它足够使用reachabilityWithHostName
还是我还需要reachabilityForLocalWiFi
and reachabilityForInternetConnection
?
还有一件事,我知道苹果可以拒绝使用网络但不使用可达性的应用程序。
我应该实施哪些“必须”做的方法?
只通知用户当前没有互联网就足够了吗?