我在编写计时器代码时想到的是,当计时器达到10时,计时器将停止计时。但是出于某种原因,事实并非如此。

import Foundation
import UIKit

class SinglePlayer: UIViewController {
    var timerCount = 0.0
    @IBOutlet weak var timer: UILabel!
    var timerVar = NSTimer()

    func isCounting() {
        timerCount += 0.1
        timer.text = "\(timerCount)"
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        if timerCount <= 10.0{
            timerVar = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: "isCounting", userInfo: nil, repeats:true)
        } else {
            timerVar.invalidate()
        }
    }
}

最佳答案

您需要将条件放在回调函数中,而不要放在viewDidLoad上,后者仅在加载时被调用一次。

func isCounting() {
    timerCount += 0.1
    timer.text = "\(timerCount)"

    if timerCount >= 10.0 {
        timerVar.invalidate()
    }
}

关于swift - 设置为Swift 2时计时器不会停止,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33590886/

10-08 20:38