【发布时间】:2021-02-05 14:04:33
【问题描述】:
我有以下,
class someViewController : ViewController{
var timer:Timer? = nil
override func viewDidLoad() {
timer = Timer.scheduledTimer(timeInterval: 5.0, target: self, selector: #selector(fire), userInfo: nil, repeats: true)
}
@objc func fire(){
print("fired")
}
}
fire 功能永远不会被击中,我不知道为什么,我错过了什么?
【问题讨论】:
-
我所看到的没有任何遗漏,你调试过代码吗?
-
是的,它肯定是在创建计时器部分,过了那个很好,然后就没有进入 fire 功能,太奇怪了。
-
与您的问题无关,但您无需将计时器声明为可选
var timer: Timer = .init() -
别忘了致电
super.viewDidLoad() -
我知道这只是我在阳光下尝试了一切之后的状态。通过 DispatchQueue.main 运行它时发生的一些奇怪的事情很好。