NotificationCenter obersever 未在 swift 4 中调用
NotificationCenter obersever not called in swift 4
我正尝试从 appdelegate post 通知 NotificationCenter 并在另一个视图中接收通知,但未收到通知。
Post通知:-
func xmppStream(_ sender: XMPPStream, didReceive message: XMPPMessage)
{
print("did receive message isss-->\(message)")
NotificationCenter.default.post(name: Notification.Name("MessageReceived"), object: message)
}
在 viewdidload 中收到通知:-
NotificationCenter.default.addObserver(self, selector: #selector(self.messagereceived(notification:)), name: Notification.Name("MessageReceived"), object: nil)
方法:-
@objc func messagereceived(notification:Notification)
{
let message = notification.object as? XMPPMessage
print("chat conversion message is----->\(message)")
}
我的“messagereceived”方法未被调用。
所以任何人有与此相关的解决方案然后请帮助我。
提前致谢。
将通知从
更改为post
NotificationCenter.default.post(name: Notification.Name("MessageReceived"), object: message)
到
NotificationCenter.default.post(Notification(name: Notification.Name(rawValue: "MessageReceived"),object: message))
和来自
的观察者
NotificationCenter.default.addObserver(self, selector: #selector(self.messagereceived(notification:)), name: Notification.Name("MessageReceived"), object: nil)
到
NotificationCenter.default.addObserver(self, selector: #selector(self.messagereceived(notification:)), name: NSNotification.Name(rawValue: "MessageReceived"), object: nil)
就我而言,在某些情况下我无法在我的应用程序中获取 NotificationCenter。
问题是使用
NotificationCenter.default.addObserver(self, selector: #selector(btnRegister(_:)), name: Notification.Name(rawValue: "btnRegister"), object: nil)
在我的 viewDidLoad() 函数中,当我在我的 viewWillAppear() 函数中设置上面的代码时,效果很好。
根据您的代码逻辑,将上面的代码移动到其他功能或代码的其他部分,并尝试解决您的问题。
我正尝试从 appdelegate post 通知 NotificationCenter 并在另一个视图中接收通知,但未收到通知。
Post通知:-
func xmppStream(_ sender: XMPPStream, didReceive message: XMPPMessage)
{
print("did receive message isss-->\(message)")
NotificationCenter.default.post(name: Notification.Name("MessageReceived"), object: message)
}
在 viewdidload 中收到通知:-
NotificationCenter.default.addObserver(self, selector: #selector(self.messagereceived(notification:)), name: Notification.Name("MessageReceived"), object: nil)
方法:-
@objc func messagereceived(notification:Notification)
{
let message = notification.object as? XMPPMessage
print("chat conversion message is----->\(message)")
}
我的“messagereceived”方法未被调用。
所以任何人有与此相关的解决方案然后请帮助我。
提前致谢。
将通知从
更改为post NotificationCenter.default.post(name: Notification.Name("MessageReceived"), object: message)
到
NotificationCenter.default.post(Notification(name: Notification.Name(rawValue: "MessageReceived"),object: message))
和来自
的观察者NotificationCenter.default.addObserver(self, selector: #selector(self.messagereceived(notification:)), name: Notification.Name("MessageReceived"), object: nil)
到
NotificationCenter.default.addObserver(self, selector: #selector(self.messagereceived(notification:)), name: NSNotification.Name(rawValue: "MessageReceived"), object: nil)
就我而言,在某些情况下我无法在我的应用程序中获取 NotificationCenter。 问题是使用
NotificationCenter.default.addObserver(self, selector: #selector(btnRegister(_:)), name: Notification.Name(rawValue: "btnRegister"), object: nil)
在我的 viewDidLoad() 函数中,当我在我的 viewWillAppear() 函数中设置上面的代码时,效果很好。
根据您的代码逻辑,将上面的代码移动到其他功能或代码的其他部分,并尝试解决您的问题。