0

我目前正在开发一个带有多个子视图的视图控制器的应用程序。其中一些子视图发出请求(如在 urlRequests 中)以在子视图中显示数据。

现在,如果有人离开主视图控制器,我想取消子视图中任何未完成的请求。在子视图的“dealloc”方法中取消这些请求是否足够,因为显然它们没有 viewwilldisappear 方法。我正在使用 ARC 和 iOS 6 来获得它的价值。否则我应该在子视图中创建自己的取消方法,然后在主视图控制器的 viewWillDisappear 中循环它们以调用此方法吗?

还是子视图的方法一开始就提出了错误的请求?

我能找到的最接近我的问题的事情是视图将消失而不是触发,这似乎表明 dealloc 应该起作用。

谢谢

4

1 回答 1

0

从我的角度来看,您的视图(子视图)应该只负责显示内容。

例如,请求应该由 dataManager 单例或视图控制器完成(您可以使用 NSOperationQueue)。

然后,我将创建一个取消方法来停止当前请求并从队列中删除下一个请求。

将取消代码放入 dealloc 或 viewDidDisappear 取决于您。如果你认为你的视图只会消失一小段时间,那么把它放在 dealloc 中。

您也可以收听 UIApplicationDidEnterBackgroundNotification 通知来取消请求。

于 2013-09-04T09:04:36.833 回答