IOS dispatch_async视图将消失

时间:2012-06-27 15:42:53

标签: ios grand-central-dispatch dispatch-async

我每隔3秒左右使用dispatch_async和一个块来检索服务器数据。处理视图的方法是消失还是用户关闭程序?

async块会不时检查它是否是一个布尔标志?如果是这样,如果异步块正在休眠时视图会退出怎么办?

1 个答案:

答案 0 :(得分:4)

您无法轻松取消发送电话,因此最好转而转到NSOperation。 2012年WWDC上有一则高度相关的视频Session 211 - Building Concurrent User Interfaces on iOS,它涵盖了您所描述的问题。我绝对建议你看。

基本方法是创建一个NSBlockOperation,它可以检查自身-isCancelled属性,如果它被取消则提前返回。然后,您可以在viewDidDisappear

中取消操作

另一种方法是使用NSTimer,这也很容易失效/取消。考虑到您的代码正在做什么的描述,这实际上可能是最简单的解决方案。