Я не уверен, почему, но каждый раз, когда я запускаю приложение, мой таймер не будет вызывать функцию обновления. Я пробовал все: используя #selector, добавляя двоеточие в конце обновления, ничего не работает. Я добавил заявление о печати внутри моего обновления, чтобы убедиться, что он дошел до него, и оператор печати никогда не печатает! Я не уверен, почему это не называется .... Помогите! Постскриптум Я знаю, что выбранный действительно является одним из вариантов в выражении if, у меня был оператор печати для этого, и он работает.Таймер не будет вызывать функцию выбора
if (selected == "05 seconds") {
count = 5
timer = Timer(timeInterval: 1.0, target: self, selector: Selector("update"), userInfo: nil, repeats: true)
}
else if (selected == "10 seconds") {
count = 10
timer = Timer(timeInterval: 1.0, target: self, selector: Selector("update"), userInfo: nil, repeats: true)
}
else if (selected == "20 seconds") {
count = 20
timer = Timer(timeInterval: 1.0, target: self, selector: Selector("update"), userInfo: nil, repeats: true)
}
else if (selected == "30 seconds") {
print("I'm here!")
count = 30
timer = Timer(timeInterval: 1.0, target: self, selector: Selector("update"), userInfo: nil, repeats: true)
}
else if (selected == "Single Shot") {
SendButton.isHidden = false
countDownLabel.isHidden = true
}
}
func update() {
print("Now I'm in update!")
count = count - 1;
countDownLabel.text = String(count)
}
Также правильный способ использования селекторов в Swift 3 - '#selector (update (_ :))'. Таким образом вы можете передать отправителя функции. – TheValyreanGroup