Ios 在swift中使用计时器
我是一个完全的初学者,正在开始学习Swift编程语言。我正在学习Udemy的教程,在设置计时器方面遇到了一些问题Ios 在swift中使用计时器,ios,swift,xcode,Ios,Swift,Xcode,我是一个完全的初学者,正在开始学习Swift编程语言。我正在学习Udemy的教程,在设置计时器方面遇到了一些问题 class ViewController: UIViewController { @IBOutlet weak var label: UILabel! var timer1 = Timer() var counter = 0 override func viewDidLoad() { super.viewDidLoad() // Do any additional
class ViewController: UIViewController {
@IBOutlet weak var label: UILabel!
var timer1 = Timer()
var counter = 0
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
label.text = String(counter)
}
@IBAction func start(_ sender: Any) {
timer1 = Timer(timeInterval: 1, target: self, selector: #selector(tim), userInfo: nil, repeats: true)
}
@IBAction func pause(_ sender: Any) {
timer1.invalidate()
}
@IBAction func restart(_ sender: Any) {
timer1.invalidate()
counter = 0
label.text = String(counter)
}
@objc func tim() {
counter += 1
label.text = String(counter)
}
}
这是我的代码,但计时器不工作。请告诉我哪里出了问题。您需要向RunLoop添加计时器
或者使用scheduledTimer
此外,在重新启动功能中,您还需要重新启动,因为现在您只是使其无效,而不再启动。什么是“不工作”呢?具体点。您要做什么以及结果如何?您必须将计时器添加到runloop或使用scheduledTimer API。“重新启动”会重置计数器,但不会重新启动计时器。@马特计时器不会启动,但看起来我没有安排它。现在一切都好了@瓦迪安是的,我知道了,谢谢!问题发生时,您是否在模拟器中运行?非常感谢!看来我错过了。重启功能更像是一种复位功能。我这边的措辞很糟糕。
RunLoop.current.add(timer1, forMode: .commonModes)
timer1 = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(tim), userInfo: nil, repeats: true)