【问题标题】:iOS - Best practice for handling network response cross ViewControllersiOS - 处理跨 ViewController 的网络响应的最佳实践
【发布时间】:2013-05-22 10:37:32
【问题描述】:

例如, 导航堆栈中有 3 个顺序视图控制器,A、B、C。 在后台线程中的视图控制器 C 中发送异步网络请求后, 用户可以返回 B 或 A。

无论当前视图控制器在哪里,处理网络响应的最佳方式是什么?

谢谢。

【问题讨论】:

  • 最好的办法是首先不要让 ViewControllers 发送请求,而是让另一个“控制器”对象处理网络通信。

标签: ios multithreading networking


【解决方案1】:

由于三个视图控制器可能对响应感兴趣,所以不要在其中任何一个中做出响应。创建一个类,假设NetworkHandler 使用方法- (void) makeRequest。您可以将其设为单例或将其添加到AppDelegate

在 C 中,调用此方法。

- (void) makeRequest 完成调用时,发出NSNotification 并使所有三个视图控制器都注册到此通知。

【讨论】:

    【解决方案2】:

    最好有一个单例类。您还可以让一些委托通知控制器收到响应并执行相应的操作。

    【讨论】:

      猜你喜欢
      • 2016-06-05
      • 2015-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-18
      • 1970-01-01
      相关资源
      最近更新 更多