在科尔多瓦插件中设置 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 观察者的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Cakephp 4 的另一个插件中设置对插件的依赖?