我了解 UITextField 等 UI 控件通过其委托(delegate)通知客户端交互/事件,委托(delegate)被定义为支持所需协议(protocol)的类。
我经常发现自己希望在多个类中接收 UI 事件的通知,因此希望支持多播。例如,为 UI 控件指定多个委托(delegate)。我很确定没有支持此功能的 iOS 框架功能。我想知道是否有人想出一个像样的解决方案来解决这个问题?
最佳答案
有一个 Cocoa 功能可以让您相对轻松地构建多播委托(delegate) - 它是 Message Forwarding系统内置于框架中。
创建一个覆盖 forwardInvocation:
的类,并返回对象的实例而不是委托(delegate)。这就是有时称为 “蹦床对象” 的东西。 forwardInvocation:
实现中的逻辑现在可以决定哪些“真实”对象应该接收消息,并将调用转发给其中的一个或多个对象。
作为对这个已接受答案的更新,我在这里创建了自己的多播委托(delegate)实现:
http://www.scottlogic.co.uk/blog/colin/2012/11/a-multicast-delegate-pattern-for-ios-controls/
关于objective-c - 多播委托(delegate) - 多个类从 iOS 中的 UI 控件接收通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12349865/