如果一个操作失败,如何取消操作队列中的后续操作

时间:2015-11-04 08:11:40

标签: ios objective-c swift

我在一个队列中有几个操作,并逐个设置依赖关系。如果一个操作失败,我希望取消以下所有操作。但是在调用[queue cancelAllOperations]之后,操作将不会从队列中删除或停止。 取消操作不会自动将其从队列中删除或停止当前正在执行的操作。对于排队和等待执行的操作,队列必须仍然尝试执行操作,然后才能识别它已被取消并将其移至完成状态。 我怎么能取消所有剩余的操作?感谢。

1 个答案:

答案 0 :(得分:2)

voteButton(sender:UIButton)有一个已取消的属性,可以由您或NSOperation在单个操作中明确设置以响应NSOperationQueue消息。操作应该使用cancelAllOperations方法检查此属性。对于将快速完成的操作,不值得实施此检查。如果操作需要很长时间(几秒或更长时间),它应该定期执行以下操作:

main

This blog精美地解释了这个概念!