ios - iOS SDK 中的通知中心与委派

标签 ios delegates nsnotificationcenter

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

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

是否因为通知中心系统意味着多个对象可以使用键盘外观 Action 作为改变其状态的触发器,而只有一个对象能够与委托(delegate)实现一起操作?

最佳答案

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

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

至于关系,委托(delegate)是一对一的关系,而通知中心是一对一/多的关系。

关于ios - iOS SDK 中的通知中心与委派,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19215346/

相关文章:

ios - 如何使用 GCDWebServer 配置代理以支持跨域请求

objective-c - 从另一个类实现中获取 CGFloat 实例变量

ios - UITableViewCells 会在不同的 UITableViews 实例中重复使用吗?

ios - 在显示 ViewController 之前热加载@IBOutlet?

ios - 如何在不使用 URL 方案且不触摸非越狱 iDevice 上的图标的情况下启动应用程序?

c# - 存储和调用通用类型的委托(delegate)

c# - 从属性 getter 或 setter 方法创建委托(delegate)

iphone - 为什么 NSNotificationCenter 释放时会抛出异常?

ios - 快速修改通知配置

Swift - 更新多个 viewController