本应为Swift 2时计时器未停止
我把计时器编码为当我的计时器达到10时,它就会停止。但出于某种原因,它没有本应为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
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消失吗?这里