我目前正在使用具有多个子视图的viewcontroller的应用程序。其中一些子视图发出请求(如在urlRequests中),以便在子视图中显示数据。
现在如果有人离开主viewController,我想取消子视图中的任何未完成的请求。是否足以在子视图的“dealloc”方法中取消这些请求,因为它们显然没有viewwilldisappear方法。我正在使用ARC和iOS 6来获得它的价值。否则我应该在子视图中创建自己的cancel方法,然后在主视图控制器的viewWillDisappear中循环它们以调用此方法?
或者说子请求的方法是否使得请求错误?
我能找到的最接近我的问题的是view will disappear is not firing,这似乎表明dealloc应该有效。
由于
答案 0 :(得分:0)
从我的角度来看,您的观点(子视图)应该只关注显示内容。
请求应该由dataManager单例或视图控制器完成(您可以使用NSOperationQueue)。
然后我会创建一个取消方法来停止当前请求并从队列中删除下一个请求。
将取消代码放入dealloc或viewDidDisappear取决于您。如果你认为你的观点只会在很短的时间内消失,那就把它放在dealloc中。
您也可以收听UIApplicationDidEnterBackgroundNotification通知以取消请求。