I have the following code:
class firstVC: UIViewController {
var timer : Timer?
func scheduledTimerWithTimeInterval(){
timer = Timer.scheduledTimer(timeInterval: 60, target: self,
selector: #selector(self.anotherFunc), userInfo: nil, repeats:
true)
}
override func viewDidAppear(_ animated: Bool) {
scheduledTimerWithTimeInterval()
}
}
我试图停止计时器,但没有成功:
func stopTimer() {
if timer != nil {
timer?.invalidate()
timer = nil
}
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
stopTimer()
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
stopTimer()
}
我甚至尝试将停止函数放在applicationWillResignActive
和applicationDidEnterBackground
中,但它没有停止:
firstVC().stopTimer()
非常感谢您的帮助,十分感激。
涉及到IT技术相关内容,请您指导。
timer?.invalidate
是否被触发了吗? - CodeNinjanil
。 - vacawamaTimer
实例)。并且,你也说过有两个好的答案,但是你的计时器仍然在运行。那么,也许你可以澄清一下具体是如何做到的(按home键?关闭此视图?等等)。此外,你有开启某些后台模式吗?总之,下面的答案解决了明显的问题,但如果问题仍然存在,我们需要更多细节。我们需要一个可重现的问题示例。 - Rob