我正在创建一个具有不同时间间隔的计时器。我使用了Swift的Timer
对象。在主循环中,我初始化计时器并将重复性设置为false。在选择器函数中,我使旧计时器无效,并以不同的计时器间隔初始化新计时器。这种方法有什么问题吗?有内存问题吗?
class ViewController: UIViewController {
var timer : Timer?
override func viewDidLoad() {
super.viewDidLoad()
// Swift block syntax (iOS 10+)
timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(self.update), userInfo: nil, repeats: false)
}
// must be internal or public.
@objc func update() {
print("Hello Timer")
timer?.invalidate()
timer = Timer.scheduledTimer(timeInterval: 3, target: self, selector: #selector(self.update), userInfo: nil, repeats: false)
}
}
上面的代码按预期工作。但是我不确定内存是否泄漏。