处理iPhone应用程序中的连接不足

处理iPhone应用程序中的连接不足,iphone,web-services,Iphone,Web Services,我们的web服务有一个“ping”功能,它非常适合测试web服务是否可用(我真的不在乎internet连接是否可用,对吗?),我知道如何测试这种情况,但如何在我的应用程序中实现它?我在哪里测试 如果没有连接,应用程序当然不会崩溃,它只返回一个空的表视图或一组视图。我是否应该将ping放在每个请求之前,并在ping失败时生成异常或错误消息?web服务请求+响应本身可能需要比实际数据传输更长的时间(我想可能是延迟),因此我担心在每个请求之前实现Ping可能会使执行每个请求所需的时间增加一倍。或者,我

我们的web服务有一个“ping”功能,它非常适合测试web服务是否可用(我真的不在乎internet连接是否可用,对吗?),我知道如何测试这种情况,但如何在我的应用程序中实现它?我在哪里测试

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


或者我应该担心一下吗?

一旦网络连接发生变化(例如从飞机模式到手机模式再到wifi模式再回来),iOS可以为您提供回调功能。因此,无论何时网络状态发生变化,您都会收到通知,无需继续ping服务器,并且可以显示正确的在线/离线消息


请查看NetworkReachability.h标头中的scnetworkreachabilitystcallback方法

我能够使用可达性库,如对的回答中所示。您可以扩展库,使其不仅包括hostReachable,还包括wsReachable,只需做一点可能对所有人都很明显的工作。

但是,如何实现特定的服务呢?比如说,我有网络连接,但网络服务恰好关闭了。我想你只能靠自己了。。。如果ping验证实际服务的时间太长,我可能会将其放入一个额外的线程中,该线程在启动时以较低的频率运行。然后您只需要在主工作流中查询一个状态变量。。。