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
호출되는 함수에 어떻게 포함시킬 수 있습니까?
yourValue
그 알림에서 호출되는 함수에서 어떻게 가져올 수 showSpinningWheel
있습니까?
.userinfo
처럼 notification.userinfo
NSNotificationCenter.defaultCenter().postNotificationName("hideSpinner", object: nil, userInfo: yourvalue)