Использования Swift 3, Xcode 8.2.1Свифта: Передача параметра селектор
Метод:
func moveToNextTextField(tag: Int) {
print(tag)
}
Линия ниже компиляции хорошо, но tag
имеет неинициализированное значение:
let selector = #selector(moveToNextTextField)
Timer.scheduledTimer(timeInterval: 0.2, target: self, selector: selector, userInfo: nil, repeats: false)
Однако мне нужно передать параметр. Ниже компилируется:
let selector = #selector(moveToNextTextField(tag: 2))
Swift Compile Error:
Argument of #selector does not refer to an @objc method, property, or initializer.
Как передать аргумент селектору?
@ user1107173 обновил ответ с помощью некоторого кода. – hybridcattt
Вадиан правильный. Вы не можете передавать пользовательский параметр через таймер. Вы должны установить этот параметр в поле userInfo таймера. (Селектор может либо пройти в таймере в качестве параметра, либо без параметров). –