Swift:如何使方法每10秒调用一次

时间:2016-08-28 22:10:17

标签: ios swift

在我的主ViewController ViewDidLoad中,我有以下代码每秒调用“tick”方法。

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

在“tick”方法中,我检查布尔值是否每秒都为真,如果为true,我需要调用另一个名为SpeakText()的方法,但我想每10次调用一次SpeakText()秒。我该怎么做?

2 个答案:

答案 0 :(得分:3)

创建一个类属性以跟踪自上一个SpeakText以来的时间。每次调用tick时都会更新,并在调用0时将其重置为SpeakText

var secondsSinceSpeakText = 10

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

注意:使用初始值secondsSinceSpeakText启动10将允许第一个SpeakText立即发生。

答案 1 :(得分:0)

当你拨打讲话文本功能时,只需为speaktext创建另一个计时器。如果它在10秒内返回假