Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
本应为Swift 2时计时器未停止_Swift_Nstimer - Fatal编程技术网

本应为Swift 2时计时器未停止

本应为Swift 2时计时器未停止,swift,nstimer,Swift,Nstimer,我把计时器编码为当我的计时器达到10时,它就会停止。但出于某种原因,它没有 import Foundation import UIKit class SinglePlayer: UIViewController { var timerCount = 0.0 @IBOutlet weak var timer: UILabel! var timerVar = NSTimer() func isCounting() { timerCount += 0

我把计时器编码为当我的计时器达到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()
    }
}

除了将条件检查放入isCounting函数的解决方案之外,我怀疑当计时器在viewDidLoadThx中很快启动时,您永远不会看到计时器的完全递增。我非常感谢它立即起作用。没有问题,当您找到问题的解决方案时,您将其标记为接受答案。你知道如何让.9999999消失吗?这里