У меня есть проект Swift, где я хочу привязать метод к событию крана UIButton. У меня есть следующий код:
class MyClass {
let myButton = UIButton(frame: CGRectMake(50, 50, 100, 50))
init() {
myButton.addTarget(self, #selector(self.didTap(_:)), forControlEvents: .TouchUpInside)
}
func didTap(sender: UIButton) {
print("Tapped")
}
}
XCode выделяет мою строку addTarget
и говорит:
Argument of '#selector' refers to a method that is not exposed to Objective-C
Если я добавлю префикс @objc
к моему func didTap
, как он предлагает, все будет хорошо.
У меня что-то включено в моих настройках сборки, что вызывает это странное поведение?
PS. Я получаю это поведение в 7.3.1. Но если я попробую это в 7.2.1, он не примет синтаксис #selector(method(_:))
, а Selector("method:")
отлично работает.