2017-01-10 7 views
-1

問題:次の関数呼び出しで実行がオーバーライドされない関数を作成するにはどうすればよいですか?

私のポストのように更新するような機能がありますが、ユーザーが機能のように高速にまたは連続的にヒットした場合、

同様のステータスのUIの更新は、次の関数呼び出しでオーバーライドされ、同様のカウンタにバグが発生します。

質問: 以前の関数呼び出しの実行をオーバーライドするために、別の関数呼び出しを停止するにはどうすればよいですか?

P.s:サンプルコードは必要ありません。

ありがとうございます。

+0

あなたは次の関数呼び出しとはどういう意味ですか? – Poles

+0

@ポール:ボタンをもう一度押すか、連続して押すと、関数は複数回呼び出されますか? – user3804063

+1

コードは常に*常に役立ちます。あなたのボタン・プレスがある種の非同期ネットワーク操作を開始するように思えます。シリアルディスパッチキューまたはブール値を使用して、最初のキューが完了するまで操作を禁止することができます。 – Paulw11

答えて

1

私は最も簡単な方法は、フラグ変数を使用することで、あなたは次のように必要に応じて、後であなたのフラグ変数をリセットするためにタイマーを設定することができますね。

var flag = false 

func test() { 
    if flag == false { 
     // your code ... 
     print("123") 
    } 

    flag = true 
} 

// Set this later 
Timer.scheduledTimer(timeInterval: 3.0, target: self, selector: #selector("some function"), userInfo: nil, repeats: false) 
関連する問題