In der Server-Seite I Socket.io Bibliothek verwenden Hinzufügen Beobachter einige JS Objektdaten eingeben durch, bei den Benutzern in ihren Geräten eingeben senden:NotificationCenter throw Fehler, wenn sie mit Auswahlfunktion
var typingUsers = {};
clientSocket.on("startType", function(clientNickname){
typingUsers[clientNickname] = 1;
io.emit("userTypingUpdate", typingUsers);
});
, wenn die App-Daten empfängt , es wird Benachrichtigung hinterlassen:
private func listenForOtherMessages() {
socket.on("userTypingUpdate") { (dataArray, socketAck) -> Void in
NotificationCenter.default.post(name:NSNotification.Name(rawValue: "userTypingNotification"), object: dataArray[0] as! [String: AnyObject])
}
}
Und dann wird die Benachrichtigung an einen view-Controller als Beobachter hinzugefügt:
NotificationCenter.default.addObserver(self, selector: Selector(("handleDisconnectedUserUpdateNotification:")), name: NSNotification.Name(rawValue: "userWasDisconnectedNotification"), object: nil)
Diese Implementierung immer einen Fehler „Unbekannter Selektor senden ...“ werfen
Aber die folgende Umsetzung ohne Selektor funktioniert ok:
NotificationCenter.default.addObserver(forName:NSNotification.Name(rawValue: "userTypingNotification"), object: nil, queue: nil){ object in
print(object)
}
Es scheint, als ob ich ein nicht hinzufügen Selektor für den Betrachter, ich glaube, die Probleme in dem Objektdatentyp liegen könnten, aber ich kann nicht wirklich herausfinden, warum ..