在科尔多瓦插件中设置 NSNotification 观察者

Posted

技术标签:

【中文标题】在科尔多瓦插件中设置 NSNotification 观察者【英文标题】:Setting NSNotifications observer in a cordova plug in 【发布时间】:2014-02-04 15:57:26 【问题描述】:

我有一个 cordova 插件,它依赖于连接到我的 ios 设备的附件。通知正在刷卡的附件(磁性刷卡器)。但是我不确定我应该将观察者设置为什么。在他们提供的示例代码中,他们将其设置为self,但在ViewController 中,我的插件不在应用程序控制器中。有什么想法吗?

这是示例代码的通知代码(同样在ViewController

[[NSNotificationCenter defaultCenter] addObserver: self
                                         selector:@selector(trackDataReady:)
                                             name: @"trackDataReadyNotification"
                                           object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(devConnStatusChange)
                                             name:@"devConnectionNotification"
                                           object:nil];

【问题讨论】:

碰巧有人能告诉我选择器末尾是否有: 的区别,就像这个问题中的情况一样?当不使用 : 时,我的 Cordova 应用程序出现错误,因为 self 实例似乎不再存在(self 是 CDVPlugin 实例) 【参考方案1】:

只要对象(self)仍然被分配,它就会在消息发布到 NSNotificationCenter defaultCenter 时收到消息。它不必是视图控制器。请记住,当对象被释放时,观察者会被移除,否则您将遇到应用程序崩溃。

【讨论】:

很高兴知道!谢谢你。问题是,它似乎没有触发这些通知!不过谢谢。 您使用的 Cordova 插件不会触发通知?如果您需要检查通知是否正在触发,您可以随时在不同区域的代码中触发一个,以确保它们被您的班级捕获。

以上是关于在科尔多瓦插件中设置 NSNotification 观察者的主要内容,如果未能解决你的问题,请参考以下文章

Joomla - 在插件中设置字段属性

在 VSTO 插件中设置 CurrentCulture

如何在 Cakephp 4 的另一个插件中设置对插件的依赖?

无法在 Bootstrap 的 select2 插件中设置选定值

如何在 Maven 发布插件中设置 SCM 标签?

如何使用 ClangCodeModel 插件在 QtCreator 中设置 C++ 标准?