Swift:如何取消代码块

时间:2016-10-01 19:16:41

标签: swift grand-central-dispatch nsoperation

我有一个阻挡内部阻挡

fun abc(){
 a({
 //some processing
  b({
   //some asynchronous work
    })
  })
}

当点击按钮时,方法abc被调用,它通过连接到互联网完成一些任务并花费一些时间。我正在寻找取消前一个块的方法,如果点击两次,则运行当前块。 请建议

1 个答案:

答案 0 :(得分:0)

没有直接的选择取消你的阻止。当块被调用时只执行一种在块体内设置条件的方法并且不执行内部的部分,就会执行块。

在您遇到的情况下,尝试使用OperationOperationQueue此方法将为您提供灵活的解决方案来管理操作执行并为cancel操作提供机会。

小例子:

   let operationQueue = OperationQueue.main
   let operation = Operation()

   operationQueue.addOperation(operation)

   //Cancel operation that is executing
   operation.cancel()