使用 ASIHTTPRequest 的可达性
Posted
技术标签:
【中文标题】使用 ASIHTTPRequest 的可达性【英文标题】:Using ASIHTTPRequest's Reachability 【发布时间】:2012-02-07 23:48:38 【问题描述】:我开始在我的 ios 项目中使用 Reachability 来测试是否有互联网连接。
我的应用包含在带有 3 个不同选项卡的 UITabBarController
中。每个选项卡的根是不同的UIViewController
。在每个控制器中,我根据用户的操作提出几个请求。
我的问题是如何创建一个全局函数(或宏)以在使用互联网连接的每个函数之前使用,而无需在每个控制器中重写此函数。
有可能有这样的功能吗?我看到有一种方法可以让应用程序根据网络状态发送通知。但是看看这个例子:
-
用户点击
UIButton
网络可用,请求开始。
如果网络出现故障,如何停止请求并显示例如UIAlertView
?
我已经很好地搜索了,但我找不到我的问题的答案,谢谢。
【问题讨论】:
【参考方案1】:在发出网络请求之前,不应使用可达性来检测网络是否可用,因为发出网络请求的行为可能会在需要时启动网络。可达性应该只用于检测网络在不可用后何时变为可用。
尝试发出网络请求 - 如果网络不可用,您会收到错误消息。通常响应会立即返回,但如果网络参差不齐,则可能需要一段时间,因此您不应该在主线程上进行同步网络调用。尽可能使用 NSURLConnection,当有事情发生时你会得到回调。
【讨论】:
我使用ASIHTTPRequest
发出异步请求。难道没有更优雅的方式在发出请求之前检查网络是否可用?
不可靠,不。提出请求,检查错误。设备将关闭无线电以节省电力,发出请求的行为可以再次开启无线电。以上是关于使用 ASIHTTPRequest 的可达性的主要内容,如果未能解决你的问题,请参考以下文章