如何在Swift 3.0中使用NotificationCenter和在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并将其包含在调用的函数中呢?


RISEBY
浏览 517回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP