SWIFT:从3开始倒计时,将标签更改为0

Gab*_*MSC 3 nstimer ios swift

这是我的困境,我正在做一些非常简单的事情,只是在做一些发现.基本上,我有一个按钮和一个标签,我将按钮设置为从3倒数到0,但我不是显示0,我希望它停止倒计时,并显示一个字符串,显示"是!"

这是我提出的一些代码.

class ViewController: UIViewController {

var myTimer: NSTimer = NSTimer()
var count: Int = 4

func startCountdown(){
    myTimer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: #selector(myUpdate), userInfo: nil, repeats: true)

}

func myUpdate() {
    if(count > 0) {
        count -= 1
        timerLabel.text = "\(count)"
    }
}

func countdownReachedZero(){
    if count == 1{
        myTimer.invalidate()
        timerLabel.text = "Yes!"
    }
}

@IBOutlet weak var resultButtonOutlet: UIButton!
@IBOutlet weak var timerLabel: UILabel!
@IBAction func resultButton(sender: AnyObject) {
    //button actions, starts countdown from 3-1
    startCountdown()

}


override func viewDidLoad() {
    super.viewDidLoad()
    countdownReachedZero()
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
}
Run Code Online (Sandbox Code Playgroud)

}

目前,我的结果只是3-0的倒计时,它完全忽略了来自viewDidLoad的countdownReachedZero()调用.如果我按下按钮内的countdownReachedZero()方法,然后按下按钮,等待它达到0,然后再次按下按钮,它将改变文本,但我不知道我哪里出错了.

我尝试了各种方法.我认为可行的是,通过字符串循环,只显示它们一段时间,但我也缺乏知识.

还有更简单的东西吗?我错过了什么吗?

如果您还需要其他任何东西,我可以提供.

mat*_*att 7

问题是这个函数缺少了一半的逻辑:

func myUpdate() {
    if(count > 0) {
        count -= 1
        timerLabel.text = "\(count)"
    }
}
Run Code Online (Sandbox Code Playgroud)

每次计时器触发时都会调用该代码.它说如果要做什么count > 0,但你完全忘记在关键的情况下该怎么做count == 0!