我理解通知、发布者和观察者的概念。
但我不太明白我们的应用程序或操作系统如何理解并向观察者类发送标志/通知?
这背后的机制是什么?
非常感谢您的答复和帮助。
谢谢
ID。
我理解通知、发布者和观察者的概念。
但我不太明白我们的应用程序或操作系统如何理解并向观察者类发送标志/通知?
这背后的机制是什么?
非常感谢您的答复和帮助。
谢谢
ID。
[[NSNotificationCenter defaultCenter] postNotificationName:@"notif_key" object:nil userInfo:userDict];
现在,每一个监听名为@"notif_key"的通知的生物都可以执行一些操作。
如何让对象监听?
它需要运行:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(doSomething:) name:@"notif_key" object:nil];
当第一个对象发送通知时,观察者对象将运行'doSomething:'方法。
注:
- userDict是一个字典,您可以向这些观察者发送一些信息。
- 不要忘记在dealloc方法中取消观察者。
加深你的理解,这对我来说需要一些时间才能消化。虽然它没有告诉我们内部是如何工作的,但它告诉了我们它是如何实现工作的。
在多线程应用程序中,通知总是在发布通知的线程中传递,这可能不是观察者注册自身的同一线程。
来源:苹果文档
因此,通知可以在任何线程中注册,但与通知相关联的方法在发布通知的线程上运行,因此如果我们想要对UI进行任何更改,我们将其分派到主线程。