2017-08-30 2 views
-2

Hii tout le monde je suis juste passer de xcode8 à xcode9 et quand je tryed d'utiliser reconnaisseur geste qu'ils xcode9 est montrant une erreur#selector en Recognizer geste dans xcode9

l'argument

de #selector se réfère à la méthode de de installent swipe (geste) non> exposer à obj c et ici mon code

override func viewDidLoad() { 
    super.viewDidLoad() 

    let swipeLeft = UISwipeGestureRecognizer(target: self, action: #selector(swipe(gestuer:))) 
    swipeLeft.direction = .left 
     self.view.addGestureRecognizer(swipeLeft) 
} 

func swipe(gestuer: UISwipeGestureRecognizer) { 
    if gestuer.direction == .left { 
     print("this is left swipe") 
    } 
} 

donc est-ce problème de Xcode de quelque chose d'autre

+0

ajouter @objc avant votre fonction swipe – Siyavash

Répondre

0

Vous devez utiliser l'attribut @objc sur swipe (gestuer :) pour l'utiliser aveC#selector.

@objc func swipe(gestuer: UISwipeGestureRecognizer) { 
    if gestuer.direction == .left { 
     print("this is left swipe") 
    } 
} 
+0

pourrait vous PLEZ expliquer pourquoi je dois utiliser, où en xcode8 il n'y avait rien, comme –

+0

« Une classe Swift ou d'un protocole doivent être marqués avec l'attribut @objc être accessible et utilisable dans Objective-C Cet attribut indique au compilateur que ce morceau de code Swift est accessible depuis Objective-C. " parce que #selector est objectif C donc vous devez rendre votre méthode accessible avec l'objectif C – Siyavash

+0

je l'ai eu mais je me demande si cette erreur ne s'affichait pas dans xcode8 –