Я внедряю socket.io
в мое быстрое приложение ios.
В настоящее время на нескольких панелях я слушаю сервер и жду сообщений. Я делаю это, вызывая функцию getChatMessage
в каждой панели:
func getChatMessage(){
SocketIOManager.sharedInstance.getChatMessage { (messageInfo) -> Void in
dispatch_async(dispatch_get_main_queue(), { () -> Void in
//do sth depending on which panel user is
})
}
}
Однако я заметил, что это неправильный подход, и мне нужно его изменить - теперь я хочу начать прослушивание входящих сообщений только один раз и когда приходит какое-либо сообщение - передайте это сообщение на любую панель, которая его прослушивает.
Итак, я хочу передать входящее сообщение через NSNotificationCenter. До сих пор мне удалось передать информацию о том, что что-то произошло, но не передать данные. Я делал это:
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(ViewController.showSpinningWheel(_:)), name: showSpinner, object: nil)
то у меня была функция, называемая:
func showSpinningWheel(notification: NSNotification) {
}
и в любое время, когда я хотел его называть, я делал:
NSNotificationCenter.defaultCenter().postNotificationName(hideSpinner, object: self)
Итак, как я могу передать объект messageInfo
и включить его в вызываемую функцию?