我正在使用Swift编程,我遇到了问题。 我正在使用NSTimer使用计时器编写代码,并且我已成功停止计时器。我创建了一个按钮来重启计时器,但我不知道如何输入代码。
import UIKit
class ViewController: UIViewController {
/*Timer1*/
var landmarkTime = 0
var landmarkNSTimer = Timer()
/*Timer3*/
func landmarkTimer() {
landmarkTime += 1
}
/*PauseButton*/
@IBAction func PauseButton(_ sender: Any) {
landmarkNSTimer.invalidate()
}
/*ResumeButton*/
@IBAction func ResumeButton(_ sender: Any) {
/*I want to restart the timer in this part, but I do not know what code to put in.*/
}
override func viewDidLoad() {
super.viewDidLoad()
/*Timer2*/
landmarkNSTimer = Timer(timeInterval: 1, target: self, selector: #selector(ViewController.landmarkTimer), userInfo: nil, repeats: true)
RunLoop.main.add(landmarkNSTimer, forMode: RunLoopMode.commonModes)
}
}
/* ResumeButton */
这是一个问题。我在这部分输入/* Timer2 */
,但我有一个未知的问题,我正在寻找另一个代码。告诉要在/* ResumeButton */
中输入新代码,以便重新启动计时器。
答案 0 :(得分:1)
你没有暂停计时器,你停了下来。如果您阅读invalidate
的文档,则说[强调添加]:
停止接收器再次发射并请求将其从运行循环中删除。
计时器不要停顿;它根本不属于他们的API。如果您想要暂停/恢复行为,可通过多种方式获取,包括:
fireDate
设置为Date.distantFuture
,然后在不久的将来恢复时将其设置为某个时间。