【问题标题】:How should a follow "queue" on iOS with AFNetworking/NSURLConnection如何在 iOS 上使用 AFNetworking/NSURLConnection 跟随“队列”
【发布时间】:2016-10-04 16:54:38
【问题描述】:

我的应用中有以下实现:
- 使用其 ID 来关注的主题列表。
- 当连接失败时重试连接的系统,因为互联网掉线/服务器故障。

假设用户非常快速地点击了 3 个关注按钮。
对于每个点击,都会启动一个 NSURLConnection 来为该用户分配该主题 考虑到以下可能发生的情况,应如何处理:

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

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

【问题讨论】:

  • 这似乎是一个非常广泛的问题,与其说是编程问题,不如说是设计选择......

标签: ios afnetworking nsurlconnection


【解决方案1】:

通常,您不应让用户在连接失败时关闭弹出窗口,而应在 UI 中显示一些指示符。毕竟,用户通常无法修复连接,如果他/她不想要数据,用户也不会要求提供数据,所以一旦网络恢复就静默重试几乎总是正确的行为,使用户的行为变得多余。

在每种情况下,开始观察可达性变化,然后在可达性表明请求可能成功时重试。

【讨论】:

  • 感谢您的回复。弹出窗口将通知用户,他的互联网已关闭(如果是这种情况)或服务器已关闭。该应用程序会根据从服务器下载的数据显示其所有界面,因此如果连接断开,用户将无法使用该应用程序。
  • 我的意思是用户没有理由必须关闭对话框。这是一个额外的点击,对您或用户没有真正的好处。如果您在菜单栏下方向下滑动的视图中显示该消息,您可以在网络恢复时将其向上滑动,并且用户仍会被告知问题,而无需点击屏幕。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多