2017-07-13 1 views
0

をオブザーバを追加するとき、私はいくつかのJSオブジェクトデータを送信するためにsocket.ioライブラリを使用するには、自社のデバイスに入力するユーザにより、スルー型:通知センタースローエラーセレクタ機能をサーバ側で

var typingUsers = {}; 

    clientSocket.on("startType", function(clientNickname){ 
     typingUsers[clientNickname] = 1; 
     io.emit("userTypingUpdate", typingUsers); 
    }); 

アプリがデータを受信したとき、それが通知掲示する:

private func listenForOtherMessages() { 
    socket.on("userTypingUpdate") { (dataArray, socketAck) -> Void in 
    NotificationCenter.default.post(name:NSNotification.Name(rawValue: "userTypingNotification"), object: dataArray[0] as! [String: AnyObject]) 
     } 
    } 

をそして通知がオブザーバーとしてビューコントローラに追加される:

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

この実装は、常に「...認識されていないセレクタがに送信」

をエラーをスローしかし、セレクタなしで次の実装は、[OK]を動作します:

NotificationCenter.default.addObserver(forName:NSNotification.Name(rawValue: "userTypingNotification"), object: nil, queue: nil){ object in 
      print(object) 

}

私は追加することはできませんように思えセレクタをオブザーバに渡すと、オブジェクトデータ型に問題があると思われますが、実際にはその理由がわかりません。

答えて

関連する問題