如何杀死停止后台选择器

时间:2013-02-13 04:08:59

标签: objective-c ios6 avfoundation

嘿,我有一个任务,我需要在后台线程中执行一个选择器,我需要在其中进行一些视频编码。任务很顺利。但是,如果我按下后退按钮,那么我希望该方法应该停止/杀死。但它并没有停止。

我搜索了很多,但没有找到满意的答复。我尝试了“cancellAllPreviousRequests”并且还查找了NSQueueOperation,但是找不到如何使用它来停止后台选择器。任何人都可以用相关代码帮助我。

提前谢谢。

1 个答案:

答案 0 :(得分:1)

您需要一个并发NSOperation,通过其isCancelled属性定期检查是否已取消它。然后,您可以调用cancel的{​​{1}}方法或NSOperation的{​​{1}}来停止后台任务。请记住,调用cancelAllOperations实际上不会停止操作,而是设置一个布尔属性,操作应该定期检查它是否应该自行终止(停止正在做的事情)。您在操作代码中检查NSOperationsQueue标志的频率取决于您。

如需进一步阅读,请参阅herehere