Ho un progetto Swift in cui voglio collegare un metodo all'evento di tocco di UIButton. Ho il seguente codice:Swift vuole che l'argomento #selector sia esposto a Objective-C
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 mette in evidenza la mia linea addTarget
e dice:
Argument of '#selector' refers to a method that is not exposed to Objective-C
Se posso aggiungere il prefisso @objc
alla mia func didTap
come suggerisce allora tutto funziona bene.
Ho qualcosa abilitato nelle impostazioni di compilazione che causa questo strano comportamento?
PS. Ho questo comportamento in 7.3.1. Ma se provo questo in 7.2.1 non accetta la sintassi #selector(method(_:))
e Selector("method:")
funziona correttamente.
risposta ancora nitida e completa breve. Esattamente al punto. – MadNik