関数を時間通りに呼び出す方法は?スイフト3で一度だけ電話をかける方法も?関数を時間通りに呼び出す方法は?スイフト3で一度だけ電話をかける方法も?
私は1つの関数を1回だけ呼び出す必要があるので、3秒後に関数を1回だけ呼び出す方法はありますか?あなたは、メインスレッド上で、あなたのタスクを実行したくない場合にもDispatchQueue.global().asyncAfter
を使用することができます
関数を時間通りに呼び出す方法は?スイフト3で一度だけ電話をかける方法も?関数を時間通りに呼び出す方法は?スイフト3で一度だけ電話をかける方法も?
私は1つの関数を1回だけ呼び出す必要があるので、3秒後に関数を1回だけ呼び出す方法はありますか?あなたは、メインスレッド上で、あなたのタスクを実行したくない場合にもDispatchQueue.global().asyncAfter
を使用することができます
self.timerUpdateArray.invalidate()
の
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)
}
停止タイマーの場合:スタートタイマーの
可能な複製(https://stackoverflow.com/questions/38031137 [スウィフト3の遅延をプログラムする方法]/how-to-program-a-delay-in-swift-3) –