Swift 从未收到NotificationCenter Post请求

Swift 从未收到NotificationCenter Post请求,swift,swift3,Swift,Swift3,我正试图在我的应用程序中将一条消息发布到一个可观察对象上,但由于某些原因,它根本不起作用,我唯一可以将其归因于安装https://bugfender.com/由于根本没有错误消息,有人能告诉我此代码有什么问题,或者如何找到根本原因吗 这两个代码段都已移动到AppDelegate func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.L

我正试图在我的应用程序中将一条消息发布到一个可观察对象上,但由于某些原因,它根本不起作用,我唯一可以将其归因于安装
https://bugfender.com/
由于根本没有错误消息,有人能告诉我此代码有什么问题,或者如何找到根本原因吗

这两个代码段都已移动到AppDelegate

  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {


     NotificationCenter.default.post(name: Notification.Name("TestPost"), object: nil)
     NotificationCenter.default.addObserver(self, selector: #selector(onDidReceiveData(_:)), name: Notification.Name("TestPost"), object: nil)

    return true
  }
接收器的功能是

    @objc func onDidReceiveData(_ notification:Notification) {
        // Do something now
        print("XXXXXX received")
    }
====使用自定义电容器插件的实际代码进行更新=======

  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

    ... code for receiving notification starts here

     NotificationCenter.default.post(name: Notification.Name("TestPost"), object: nil)

    ... code for receiving notification ends here


    return true
  }

您需要在发布通知之前注册您的观察员。

:)这确实解决了上述问题。我有一个曲线球给你,对于我的确切问题,add observer实际上在public override func load()中的另一个类中,你知道如何让它工作吗?我是一个敏捷的noob什么条件应该触发通知?你不想在didFinishLaunchingWithOptions中触发它,是吗?我集成了一个信号,它实际上在didFinishLaunchingWithOptions中接收或处理通知,所以我想将通知数据推送到另一个类上,这样我就可以通过桥接器将其传送到更新过的Ionic/Capactor网络视图,我省略了一个信号的东西,因为我只需要让这个post请求工作,然后我可以在它周围添加一个信号的东西。这是我以前做过的,但现在它根本不起作用,我不知道为什么不看到你的信号就很难说。如果你把它贴出来会有帮助的。但是…我假设一个信号有回叫。您应该从该回调调用
post
import Foundation
import Capacitor

@objc(myHelpers)
public class myHelpers: CAPPlugin {

    public override func load() {
        print("PluginLoaded")

       let nc = NotificationCenter.default
            nc.addObserver(self, selector: #selector(handleSignal), name: Notification.Name("TestPost"), object: nil)

    }

    @objc func handleSignal()
    {
    print("XX WE RECEIVED AN EVENT AT handleSignal")
        notifyListeners(
            "myPluginEvent",
            data: [:],
            retainUntilConsumed: true
        )
    }    


}