4

为什么 Apple 选择使用委托进行 SDK 对象之间的某些通信,并为其他对象将通知发布到通知中心?

特别是,我正在考虑来自 UIWindow 的一组键盘外观通知。

是不是因为通知中心系统意味着多个对象可以使用键盘外观动作作为触发器来更改其状态,而只有一个对象能够通过委托实现进行操作?

4

1 回答 1

6

委托允许您“向后”执行方法(并可选择传递参数)。例如,如果您有一个类引用了另一个类(父类和子类),则子类可以在不引用父类的情况下向父类回火。

另一方面,通知中心会监听并等待,直到听到它正在等待的消息。这允许多个视图控制器中的多个侦听器等待并侦听给定的消息。

至于关系,委托是一对一的关系,而通知中心是一对一的关系。

于 2013-10-07T01:39:03.683 回答