我正在为iOS开发我的第一个应用程序而不了解通知。
我发送的通知为:
DefaultCenter.postNotificationName("evRodadaAtualizei", object: nil)
在另一个课程中,我有一个观察此通知的方法:
DefaultCenter.addObserver(self, selector: Selector("Atualizar"),
name: "evRodadaAtualizei", object: nil)
我的问题是:
此观察员会听取该名称的任何通知吗?宣布通知的班级并不重要?换句话说,是否可以放置所有通知的位置(如通知库),因为它们都独立于类?
如果我理解正确,这与C#或VB.Net中事件的概念非常不同,其中事件属于类。
答案 0 :(得分:2)
Cocoa中的通知在班级间工作。无论创建或观察通知的位置都无关紧要。
但是,请注意object
方法上的postNotificationName
参数。如果设置,这应该与发布通知的对象相对应。如果您只想观察给定对象的通知,请在添加观察者时将object参数设置为该对象。 e.g。
class MyObjectClass {
func doSomething() {
// Do something and then notify
DefaultCenter.postNotificationName("evRodadaAtualizei", object: self)
}
}
class MyObserverClass {
func startProcess() {
var myObject = MyObjectClass()
DefaultCenter.addObserver(self, selector: Selector("Atualizar"), name: "evRodadaAtualizei", object: myObject)
}
func Atualizar() {
}
}