Mac OS X 开发中的通知机制详解
1. 通知机制概述
在开发过程中,对象之间的消息传递有多种方式。常见的方式有对象向自身或其他对象发送消息,例如:
[self doSomething];
[someObject doSomethingElse];
还可以通过目标 - 动作机制,让一个对象成为另一个对象的目标,当特定事件触发时执行相应动作。比如在 Windows 和 Views 应用程序中,Measure 按钮被设置为 WVMeasurer 实例的目标,当按钮被按下时,会向 WVMeasurer 实例发送 showMeasurements: 消息。
不过,对于紧密相连的对象,上述方式可行,但有时一个对象可能希望发送的消息能被多个对象接收,且不关心具体是哪些对象接收。例如,当窗口在屏幕上调整大小时,多个对象可能需要做出反应。而窗口只有一个委托,若要向多个接收者发送消息,可能需要在委托方法中进行复杂操作。在 Mac OS X 中,我们可以使用通知系统来解决这类问题。
通知机制类似于邮件列表,列表管理员(即 NSNotificationCenter 实例)会记录那些专门注册接收特定类型信息的对象,这些接收对象被称为观察者。观察者在注册时可以明确指定自己想要接收的信息类型,甚至可以指定只接收来自特定发送者对象的信息。
2. NSNotification 对象剖析
在深入了解通知中心和观察者之前,我们先看看实际的 NSNotification 对象包含哪些内容。
首先,从 showMeasurements: 方法中移除
超级会员免费看
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



