2016-08-28 13 views
-2

主なViewController ViewDidLoadには、毎秒 "tick"メソッドを呼び出す次のコードがあります。 「ティック」方式でSwift:メソッドを10秒ごとに呼び出す方法

self.timerTick = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: #selector(ViewController.tick), userInfo: nil, repeats: true) 

)(ブール値は毎秒trueの場合、私がチェックし、trueの場合、私はSpeakText()と呼ばれる第二の方法を呼び出す必要がありますが、私はSpeakTextを呼び出したいです10秒に1回だけ実行されます。これはどうすればいいですか?

答えて

3

最後のSpeakText以降の時刻を記録するクラスプロパティを作成します。それを更新するたびにtickが呼び出され、SpeakTextが呼び出されたときに0にリセットされます。

var secondsSinceSpeakText = 10 

func tick() { 
    secondsSinceSpeakText += 1 
    if boolFlag && secondsSinceSpeakText >= 10 { 
     SpeakText() 
     secondsSinceSpeakText = 0 
    } 
} 

注:10の初期値とsecondsSinceSpeakTextを起動する最初のSpeakTextはすぐに起こることができます。

0

話すテキスト機能を呼び出すときに、話すときに、話すテキストの別のタイマーを作成するだけです。 10秒未満でfalseが返された場合

関連する問題