Col*_*inE 5 delegates objective-c ios
我理解UI控件(如UITextField)通过其委托来通知客户端交互/事件,委托被定义为支持所需协议的类.
我经常发现自己想要在多个类中接收UI事件的通知,因此希望支持多播.例如,为UI控件指定多个委托.我很确定没有iOS框架功能支持这一点.我想知道是否有人提出了解决这个问题的合适解决方案?
有一个cocoa功能可以让你相对轻松地构建多播委托 - 它是框架中内置的Message Forwarding系统.
创建一个覆盖的类forwardInvocation:,并返回对象的实例而不是委托.这有时被称为"蹦床对象".实现中的逻辑forwardInvocation:现在可以决定哪些"真实"对象应该接收消息,并将调用转发给它们中的一个或多个.
作为对此接受的答案的更新,我在此处创建了自己的多播委托实现:
http://www.scottlogic.co.uk/blog/colin/2012/11/a-multicast-delegate-pattern-for-ios-controls/
| 归档时间: |
|
| 查看次数: |
1805 次 |
| 最近记录: |