当viewController更改时,如何处理异步NSURLConnections?

时间:2013-03-23 12:22:04

标签: ios nsurlconnection

假设我的iOS应用程序在视图控制器上有一个开关。我想使用此开关来更改用户的服务器端设置。因此,当用户翻转开关时,我启动异步NSURLConnection来更改设置,服务器响应以指示更改成功,以便应用程序的UI反映更改。视图控制器将具有处理响应的代码,但是如果用户在翻转开关之后但在响应返回之前更改了视图控制器,会发生什么?

2 个答案:

答案 0 :(得分:0)

有两种方法:

  1. 通过显示进度控制器来阻止用户。
  2. 如果您不想阻止用户,请在取消分配视图控制器时取消通信。如果您不想关闭通信,请将委托对象更改为某个全局对象。一旦通信被通信,该对象将传递通知。

答案 1 :(得分:0)

NSURLConnection保留其委托。如果委托是视图控制器,并且用户导航远离视图控制器,您可能希望取消该请求并在视图控制器的dealloc中释放它。如果不这样做,则在连接成功或失败之前不会释放视图控制器,并在视图控制器上调用相关的委托方法,因为NSURLConnection仍然具有对它的强引用。