2011-08-02 22 views
0

我们的Web服务具有“ping”功能,非常适合测试Web服务是否可用(我不在乎互联网连接是否可用,对不对?)我知道如何测试这种情况,但我该如何在我的应用程序中执行此操作?至于在哪里测试?处理iPhone应用程序缺乏连接性

如果没有连接,应用程序当然不会崩溃,它只是返回一个空的表视图或一组视图。我应该在每个请求之前放置ping,并在ping失败时生成异常或错误消息? Web服务请求+响应本身可能比实际数据传输花费更长的时间(我想它会是延迟),所以我担心在每个请求之前实施Ping可能会使执行每个请求所用的时间几乎增加一倍。或者,我是否应该不断地ping通并确保有连接?最佳做法是什么?

或者我应该甚至担心它呢?

回答

0

一旦网络连接发生变化(例如,从飞行模式到单元格到wifi和返回),iOS可以为您提供回调。因此,只要网络状态发生变化,您就会收到通知,您无需继续对服务器执行ping操作,并且可以显示正确的在线/离线消息。

查看NetworkReachability.h头文件中的SCNetworkReachabilitySetCallback方法。

+0

但是到达特定的服务呢?比如说我有连接性,但是网络服务恰好是关闭的。 –

+0

我想你是在你自己的...如果平实验证实际服务需要太长时间,我可能会把它放入一个额外的线程,启动时运行在一个低频率。那么你只需要在主工作流程中查询状态变量...... – KPK