定时器在应该 Swift 时不停止 2
Timer Not Stopping When Supposed To Swift 2
我在编写计时器时考虑到当我的计时器达到 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()
}
}
我在编写计时器时考虑到当我的计时器达到 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()
}
}