2016-10-01 5 views
0

のブロックを解除する方法を私は、ボタンをタップするスウィフトは:コード

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

内にブロックしているブロックを持って、法のABCが呼び出されると、それはインターネットに接続することにより、いくつかのタスクを行い、いくつかの時間がかかります。私は前のブロックをキャンセルする方法を探していて、現在のブロックを2回タップするとそのブロックを実行します。 お勧めします

+1

あなたは解約閉鎖について求めています。 Swift 3をターゲットに設定している場合はこちらをご覧くださいhttp://stackoverflow.com/a/39684520/1495682 – Kubba

答えて

0

あなたのブロックをキャンセルする直接的な方法はありません。そして、ブロックが本体の中に条件を設定する一方通行と呼ばれるだけでブロックが実行され、内部にある部分は実行されません。

OperationOperationQueueこのアプローチを使用すると、操作の実行を管理する柔軟なソリューションが得られ、cancel操作の機会が与えられます。

小さな例:

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

    operationQueue.addOperation(operation) 

    //Cancel operation that is executing 
    operation.cancel() 
関連する問題