Swift 4.0 & Xcode 9.0+:
Envoyer (Poster) une notification :
NotificationCenter.default.post(name: Notification.Name("NotificationIdentifier"), object: nil)
OU
NotificationCenter.default.post(name: Notification.Name("NotificationIdentifier"), object: nil, userInfo: ["Renish":"Dadhaniya"])
Recevoir une notification :
NotificationCenter.default.addObserver(self, selector: #selector(self.methodOfReceivedNotification(notification:)), name: Notification.Name("NotificationIdentifier"), object: nil)
Fonction-Méthode gestionnaire pour la notification reçue :
@objc func methodOfReceivedNotification(notification: Notification) {}
Swift 3.0 & Xcode 8.0+:
Envoyer (Poster) une notification :
NotificationCenter.default.post(name: Notification.Name("NotificationIdentifier"), object: nil)
Recevoir une notification :
NotificationCenter.default.addObserver(self, selector: #selector(YourClassName.methodOfReceivedNotification(notification:)), name: Notification.Name("NotificationIdentifier"), object: nil)
Gestionnaire de méthode pour la notification reçue :
func methodOfReceivedNotification(notification: Notification) {
// Agir sur la notification
}
Supprimer la notification :
deinit {
NotificationCenter.default.removeObserver(self, name: Notification.Name("NotificationIdentifier"), object: nil)
}
Swift 2.3 & Xcode 7:
Envoyer (Poster) une notification
NSNotificationCenter.defaultCenter().postNotificationName("NotificationIdentifier", object: nil)
Recevoir une notification
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(YourClassName.methodOfReceivedNotification(_:)), name:"NotificationIdentifier", object: nil)
Gestionnaire de méthode pour la notification reçue
func methodOfReceivedNotification(notification: NSNotification){
// Agir sur la notification
}
Pour les anciennes versions de Xcode...
Envoyer (Poster) une notification
NSNotificationCenter.defaultCenter().postNotificationName("NotificationIdentifier", object: nil)
Recevoir une notification
NSNotificationCenter.defaultCenter().addObserver(self, selector: "methodOfReceivedNotification:", name:"NotificationIdentifier", object: nil)
Supprimer la notification
NSNotificationCenter.defaultCenter().removeObserver(self, name: "NotificationIdentifier", object: nil)
NSNotificationCenter.defaultCenter().removeObserver(self) // Supprimer toutes les notifications observées
Gestionnaire de méthode pour la notification reçue
func methodOfReceivedNotification(notification: NSNotification) {
// Agir sur la notification
}
Annotation de la classe ou de la méthode cible avec @objc
@objc private func methodOfReceivedNotification(notification: NSNotification) {
// Agir sur la notification
}
// Ou
dynamic private func methodOfReceivedNotification(notification: NSNotification) {
// Agir sur la notification
}
0 votes
Que demandez-vous précisément ? Comment fonctionne le sélecteur ?
1 votes
Je n'ai pas réalisé que le type "Selector" est juste une chaîne de caractères en Swift. Aucune mention dans la documentation.
0 votes
stackoverflow.com/questions/36910965/…