如何发布多个NSNotification?

时间:2016-04-20 02:23:50

标签: swift nsnotification

我目前使用NSTimer多次使用postNotification,但是观察者只接收了一次。

在不添加多个观察者的情况下,多次接收相同通知的方式是什么?

我的计时器是这样创建的:

matrix[i][j] == matrix[j][i]

更新方法内部是:

timer = NSTimer.scheduledTimerWithTimeInterval(2.0, target: self, selector: #selector(update) , userInfo: nil, repeats: true)

这是我在其中一个viewcontrollers中注册观察者的方法:

let testNotification: NSNotification = NSNotification(name: "testNotification", object: self, userInfo: nil)
    NSNotificationCenter.defaultCenter().postNotification(testNotification)

我将观察者添加到viewcontroller中,就像通常那样。

我可以确认计时器是否正常工作,因为update()是以常规间隔调用的,并且观察者确实第一次收到通知,但它不会重复。

如果您需要查看更多代码,请与我们联系。

3 个答案:

答案 0 :(得分:0)

我不知道你的情况如何,但如果是一个屏幕,例如这个屏幕被取消分配或解雇而且你没有设置删除所有观察者,那么大多数情况就是生成多个观察者对于相同的名称,看起来你收到第一个,之后,另一个被分配,你没有收到,因为他们失去了参考。那应该有帮助

答案 1 :(得分:0)

尝试重新创建NSNotification的新对象。

答案 2 :(得分:0)

所以,我的testNot()函数提供了一个模态视图,并以某种方式禁止了发布的进一步通知。现在我必须弄清楚如何呈现视图并仍然继续接收通知。警报视图仍然可以正常工作它会在调试控制台中抛出一个错误,当收到进一步的通知时警报视图仍然存在,但一旦警报视图被解除,一切都恢复正常。