Swift 4.0 & Xcode 9.0+:
Nachricht senden (posten):
NotificationCenter.default.post(name: Notification.Name("NotificationIdentifier"), object: nil)
ODER
NotificationCenter.default.post(name: Notification.Name("NotificationIdentifier"), object: nil, userInfo: ["Renish":"Dadhaniya"])
Nachricht erhalten (abrufen):
NotificationCenter.default.addObserver(self, selector: #selector(self.methodOfReceivedNotification(notification:)), name: Notification.Name("NotificationIdentifier"), object: nil)
Funktion-Methode-Handler für erhaltene Benachrichtigung:
@objc func methodOfReceivedNotification(notification: Notification) {}
Swift 3.0 & Xcode 8.0+:
Nachricht senden (posten):
NotificationCenter.default.post(name: Notification.Name("NotificationIdentifier"), object: nil)
Nachricht erhalten (abrufen):
NotificationCenter.default.addObserver(self, selector: #selector(YourClassName.methodOfReceivedNotification(notification:)), name: Notification.Name("NotificationIdentifier"), object: nil)
Methodenhandler für erhaltene Benachrichtigung:
func methodOfReceivedNotification(notification: Notification) {
// Aktion bei Benachrichtigung ausführen
}
Benachrichtigung entfernen:
deinit {
NotificationCenter.default.removeObserver(self, name: Notification.Name("NotificationIdentifier"), object: nil)
}
Swift 2.3 & Xcode 7:
Nachricht senden (posten)
NSNotificationCenter.defaultCenter().postNotificationName("NotificationIdentifier", object: nil)
Nachricht erhalten (abrufen)
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(YourClassName.methodOfReceivedNotification(_:)), name:"NotificationIdentifier", object: nil)
Methodenhandler für erhaltene Benachrichtigung
func methodOfReceivedNotification(notification: NSNotification){
// Aktion bei Benachrichtigung ausführen
}
Für historische Xcode Versionen...
Nachricht senden (posten)
NSNotificationCenter.defaultCenter().postNotificationName("NotificationIdentifier", object: nil)
Nachricht erhalten (abrufen)
NSNotificationCenter.defaultCenter().addObserver(self, selector: "methodOfReceivedNotification:", name:"NotificationIdentifier", object: nil)
Benachrichtigung entfernen
NSNotificationCenter.defaultCenter().removeObserver(self, name: "NotificationIdentifier", object: nil)
NSNotificationCenter.defaultCenter().removeObserver(self) // Aus allen beobachteten Benachrichtigungen entfernen
Methodenhandler für erhaltene Benachrichtigung
func methodOfReceivedNotification(notification: NSNotification) {
// Aktion bei Benachrichtigung ausführen
}
Klassen oder die Zielmethode mit @objc annotieren
@objc private func methodOfReceivedNotification(notification: NSNotification) {
// Aktion bei Benachrichtigung ausführen
}
// Oder
dynamic private func methodOfReceivedNotification(notification: NSNotification) {
// Aktion bei Benachrichtigung ausführen
}