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