2017-06-28 1 views
0

関数を時間通りに呼び出す方法は?スイフト3で一度だけ電話をかける方法も?関数を時間通りに呼び出す方法は?スイフト3で一度だけ電話をかける方法も?

私は1つの関数を1回だけ呼び出す必要があるので、3秒後に関数を1回だけ呼び出す方法はありますか?あなたは、メインスレッド上で、あなたのタスクを実行したくない場合にもDispatchQueue.global().asyncAfterを使用することができます

+0

可能な複製(https://stackoverflow.com/questions/38031137 [スウィフト3の遅延をプログラムする方法]/how-to-program-a-delay-in-swift-3) –

答えて

0

self.timerUpdateArray.invalidate() 
2
あなたが好きな何かを行うことができ

DispatchQueue.main.asyncAfter(deadline: .now() + 3) { 
    yourFunction() // call your functin here 
} 

this postを一度だけ管理することをお勧めします。

+0

その呼び出しを複数回、3秒ごとに呼び出し関数を繰り返す –

+0

[this post](https://stackoverflow.com/questions/37886994) /ディスパッチ・イン・スウィフト3) – Lion

0
private let _onceToken = NSUUID().uuidString 

DispatchQueue.once(token: _onceToken) { 
    print("Do This Once!") 
    DispatchQueue.main.asyncAfter(deadline: .now() + 3) { 
     yourFunction() // call your functin here 
    } 
} 

これは、メソッドを1回だけ実行し、メソッドを3秒間遅延させます。

var timerUpdateArray:Timer! 
    func callTimer(){ 
     self.timerUpdateArray = Timer.scheduledTimer(timeInterval: 1, 
     target: self, selector: #selector(yourFunc), 
     userInfo: nil, repeats: true) 
    } 

停止タイマーの場合:スタートタイマーの

関連する問題