我扩展了UIviewcontroller类,以创建用于管理所有viewcontrollers中的FCM的公共corecontroller类(需要在FCM接收时执行一些公共功能)。
override func viewDidAppear(_ animated: Bool) {
//registering gcm reciever
NotificationCenter.default.addObserver(self,
selector: #selector(showReceivedGCMMessageCore(_:)),
name: NSNotification.Name(rawValue: appDelegate.messageKey), object: nil)
}
override func viewDidDisappear(_ animated: Bool) {
NotificationCenter.default.removeObserver(self, name: NSNotification.Name(rawValue: appDelegate.messageKey), object: nil)
}
我的扩展Corecontroller类viewdidAppear和viewdiddisapper在此处位于上方,我管理了通知观察器和removeobserver。 之后,无论我在哪里需要扩展的corecontroller类并继承了corecontroller类
//在我的视图控制器中
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
}
但是我所缺少的是一个视图控制器在消失时并没有移除观察者(并且由于这一功能,即播放声音在后台说话),只是想知道哪个视图控制器正在接收FCM。 (在哪一个viewcontroller类中接收到FCM消息)