Как передать данные с помощью NotificationCenter в Swift 3.0 и NSNotificationCenter в Swift 2.0?

Я реализую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 и включить его в функцию, которая вызывается?

Ответы на вопрос(4)

Ваш ответ на вопрос