Ich implementiere socket.io
in meiner schnellen ios App.Wie Daten mit NotificationCentre in Swift 3.0 und NSNotificationCenter in Swift 2.0 übergeben?
Momentan höre ich auf mehreren Panels den Server und warte auf eingehende Nachrichten. Ich mache so durch die getChatMessage
Funktion in jeder Platte Aufruf:
func getChatMessage(){
SocketIOManager.sharedInstance.getChatMessage { (messageInfo) -> Void in
dispatch_async(dispatch_get_main_queue(), {() -> Void in
//do sth depending on which panel user is
})
}
}
Allerdings bemerkte ich, es ist ein falscher Ansatz, und ich brauche, es zu ändern - jetzt will ich für eingehende Nachrichten hören nur einmal starten und wenn jede Nachricht kommt - Übergeben Sie diese Nachricht an jedes Panel, das darauf hört.
Also ich möchte die eingehende Nachricht über das NSNotificationCenter übergeben. Bisher konnte ich die Information weitergeben, dass etwas passiert ist, aber die Daten selbst nicht weitergeben. Ich tat, dass durch:
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(ViewController.showSpinningWheel(_:)), name: showSpinner, object: nil)
dann hatte ich eine Funktion namens:
func showSpinningWheel(notification: NSNotification) {
}
und jedes Mal, wenn ich wollte es nenne ich tat:
NSNotificationCenter.defaultCenter().postNotificationName(hideSpinner, object: self)
So wie kann ich übergeben Sie das Objekt messageInfo
und fügen Sie es in die Funktion, die aufgerufen wird?
Verwendung Methode mit Userinfo ... 'NSNotificationCenter.defaultCenter() postNotificationName ("hideSpinner", Objekt: null, userinfo: yourvalue).' –
hm ok, und wie kann ich holen diese 'yourValue' in der Funktion, die wird diese Benachrichtigung aufgerufen (in 'showSpinningWheel')? – user3766930
using 'userinfo' wie 'notification.userinfo' –