SWIFT: Можем ли мы создать новый метод timer () или nsTimer с другим интервалом в методе селектора? - PullRequest
0 голосов
/ 31 мая 2019

Я создаю таймер, который имеет различные интервалы времени. Я использовал 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)
    }
}

Приведенный выше код работает в соответствии с ожиданиями. Но я не уверен в утечке памяти.

...