J'essaie d'effectuer un sélecteur avec un objet dans Swift 3.0
J'ai un sélecteur qui a un paramètre
func imageSelected(aImage : UIImage)
et je l'appelle comme
viewC.perform(Selector.init("imageSelected:"), with: image, afterDelay: 0.1)
Mais l'application se bloque avec une erreur que le sélecteur n'est pas défini.
Cela a bien fonctionné car j'ai modifié le sélecteur appelé
de
func imageSelected(aImage : UIImage)
pour ça
func imageSelected(_ aImage : UIImage)
Voici quelque chose que je fais toujours lorsque je rencontre des sélecteurs dans Swift: Ignorez les paramètres, utilisez simplement le nom.
Vous avez utilisé ceci:
imageSelected:
Qu'est-ce que :
fait là? Supprime-le! Il suffit d'utiliser le nom de la méthode!
En outre, il y a cet excellent sucre #selector
syntaxique, veuillez utiliser ceci:
viewC.perform(#selector(imageSelected), with: image, afterDelay: 0.1)
Ceci est pour Swift 4.0
perform(#selector(yourMethodHere), with: nil, afterDelay: 1)
Ajouter le drapeau @objc avant votre fonction
@objc public func yourMethodHere(){
//your code here
}