2017-07-13 2 views
0

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 ..

Antwort

0

die Antwort gefunden:

NotificationCenter.default.addObserver(self, selector: #selector(self.userTypingNotification), name: NSNotification.Name(rawValue: "userWasDisconnectedNotification"), object: nil) 

older post

Verwandte Themen