2016-10-04 14 views
0

我在我的应用中使用了以下实现:
- 使用其ID进行关注的主题列表。
- 因互联网丢失/服务器故障而导致连接失败时重试连接的系统。如何在iOS上使用AFNetworking/NSURLConnection跟随“队列”

让我们假设一个用户非常快地按下3个按钮。
对于每一个NSURLConnection的启动分配给该主题 如何来走近考虑可能发生的下列情况下该用户的水龙头:

A)所有3个连接失败。所有3个都需要重试,但每个都有不同的参数 - 主题ID。 B)只有2个连接失败,第三个连接成功。
C)第一次连接失败,但在用户按下取消关注按钮后也失败。

失败,在这种情况下,我的意思是弹出窗口出现提示用户重试。
发生这种情况是因为NSURLConnection收到404或超时。

+0

这似乎是一个非常广泛的问题,而不是一个编程问题,而是设计选择...... – jcaron

回答

2

通常,当连接失败时,不应让用户关闭弹出窗口,而应该在用户界面中显示一些指示符。毕竟,用户通常没有办法修复连接,如果用户不需要这些数据,用户就不会要求这些数据,所以一旦网络恢复后就默默地重试数据几乎总是正确的行为,使用户的行为变得多余。

在每种情况下,开始监视可达性更改,然后在可达性表示请求可能成功时再试一次。

+0

谢谢你的回应。弹出窗口会通知用户,他的互联网已关闭(如果是这种情况)或服务器关闭。该应用程序根据从服务器下载的数据显示其所有界面,因此如果连接断开,用户无法使用该应用程序就没有意义。 –

+0

我的观点是没有理由让用户不得不放弃对话。这是一个额外的点击,不会给您或用户带来真正的好处。如果您在菜单栏下滑动的视图中显示该消息,则可以在网络返回时将其右移回原位,并且用户仍然可以在不需要点击屏幕的情况下获知问题。 – dgatwood