我的定时器设置有问题。
我为它写的代码是:
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var label: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: Selector(("updateTimer")), userInfo: nil, repeats: true)
}
func updateTimer(){
label.text = DateFormatter.localizedString(from: NSDate() as Date, dateStyle: DateFormatter.Style.short, timeStyle: DateFormatter.Style.short)
}
}
我运行该应用程序,但我收到的不是计时器,而是 Thread 类型的错误。 像这样的东西:
"Thread 1: signal SIGBART"
可能是什么问题?
最佳答案
如果将 Selector(("updateTimer"))
替换为 #selector(updateTimer)
,事情会更好。
然后你会被告知你需要将 @objc
添加到你的 updateTimer
函数中。
不相关但不要使用 NSDate
。
这是你的固定代码:
class ViewController: UIViewController {
@IBOutlet weak var label: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(updateTimer), userInfo: nil, repeats: true)
}
@objc func updateTimer() {
label.text = DateFormatter.localizedString(from: Date(), dateStyle: .short, timeStyle: .short)
}
}
关于ios - 计时器设置在 iOS 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50880006/