В моем приложении для iOS мне нужно выполнять действие, если в течение 2 секунд не приходит никакого результата.
Итак, я установил таймер в начале:
var timer = Timer.scheduledTimer(timeInterval: 2, target: self, selector: #selector(ViewController.noResults), userInfo: nil, repeats:false)
и всякий раз, когда я получаю результаты, я уничтожаю таймер и запускаю новый объект таймера. Я проверяю, действителен ли таймер, чтобы узнать, были ли достигнуты 2 секунды. Когда я не получаю результатов в течение 2 секунд, я делаю некоторые действия:
if result != nil {
timer.invalidate()
timer = Timer.scheduledTimer(timeInterval:2, target: self, selector: #selector(ViewController.noResults), userInfo: nil, repeats:false)
}
if timer.isValid {
print("has not been 2 seconds yet")
} else {
print("do some action")
}
Это не работает, и я никогда не получаю предложение do some action
. Может ли кто-нибудь указать мне правильный путь?