0

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

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

4

1 回答 1

4

您不能轻易取消调度呼叫,因此最好的选择是NSOperation改为。WWDC 2012, Session 211 - Building Concurrent User Interfaces on iOS中有一个高度相关的视频,它准确地涵盖了您所描述的问题。我绝对建议你看。

基本方法是创建一个NSBlockOperation可以自行检查-isCancelled属性以在它被取消时提前返回的方法。然后您可以在 中取消操作viewDidDisappear

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

于 2012-06-27T15:49:24.530 回答