Я создаю таймер, который имеет различные интервалы времени. Я использовал Timer
объект Swift. В основном цикле я запускаю таймер и устанавливаю повторяемость 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)
}
}
Приведенный выше код работает в соответствии с ожиданиями. Но я не уверен в утечке памяти.