Ho programmazione creato un UIView
e ha aggiunto UIPanGestureRecognizer
ad esso:Swift 3: selettore non riconosciuto inviato ad esempio Xcode 8
class ViewController: UIViewController{
var preludeView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
initViews()
createConstrants()
let panGestureRecognizer = UIPanGestureRecognizer(target: self, action: Selector(("handleTap:")))
preludeView.addGestureRecognizer(panGestureRecognizer)
}
func handleTap(recognizer: UIPanGestureRecognizer) {
print("WORKING!!!!")
}
func initViews() {
...
}
func createConstrants() {
...
}
}
Ma quando sto toccando il Xcode vista sta gettando un errore:
2016-07-13 09:24:29.918 Draft_Hypa_02[661:83024] -[Draft_Hypa_02.ViewController handleTap:]: unrecognized selector sent to instance 0x17d94a10 2016-07-13 09:24:29.921 Draft_Hypa_02[661:83024] * Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Draft_Hypa_02.ViewController handleTap:]: unrecognized selector sent to instance 0x17d94a10' * First throw call stack: (0x249cf91b 0x2416ae17 0x249d52b5 0x249d2ee1 0x248fe238 0x294ae9eb 0x290e984f 0x28f7aff1 0x294afd4f 0x28f3ba57 0x28f38017 0x28f78ec9 0x28f7867b 0x28f49125 0x28f476d3 0x24991dff 0x249919ed 0x2498fd5b 0x248df229 0x248df015 0x25ecfac9 0x28fb1189 0x93144 0x24587873) libc++abi.dylib: terminating with uncaught exception of type NSException
Tuttavia, se rimuovo l'argomento nella funzione handleTap
e rimuovi i due punti nello Selector(("handleTap:"))
, tutto funziona correttamente!
Già trascorso un giorno per provare a risolvere questo problema e sarebbe molto apprezzato per il vostro aiuto!
Xcode lancia "Valore di tipo 'ViewController' non ha un membro 'handleTap'" – Raul
@Forze è necessario aggiungere un trattino di sottolineatura prima del metodo first parameter. 'func handleTap (_ recognizer: UIPanGestureRecognizer) {' –
@Navav grazie, Funziona! Sai in Swift 3 dobbiamo impostare il nome esterno per la funzione di azione? – Raul