代表的子类?

Ser*_*nce 2 iphone cocoa-touch delegates design-patterns ios

我有一个叫做ToolbarView类的子类,UIView它基本上创建了UIView一个消失/重新出现的类UIToolbar.我还有一个ToolbarView被调用的子类,DraggableToolbarView它允许用户在屏幕上拖动视图.

我需要创建一个委托,ToolbarView以便它可以在工具栏重新出现和消失时通知另一个对象/类.我还需要创建一个委托,DraggableToolbarView以便在拖动视图时通知另一个对象/类.

目前,我已经为每个创建了一个单独的委托,但我想知道是否有更好的模式呢?也许实现一个委托ToolbarView,并列出委托方法DraggableToolbarView作为可选?或者有没有办法子类化委托?

实现这一目标的最佳/最干净的方法是什么?

Cal*_*leb 5

如果您为委托方法创建协议(无论如何总是一个好主意),您可以使用另一个协议采用第一个协议.这建立了类似继承的关系:

@protocol ToolbarViewDelegate
// some methods
@end

@protocol DraggableToolbarViewDelegate <ToolBarViewDelegate>
// additional methods
@end
Run Code Online (Sandbox Code Playgroud)

  • @ RichardJ.RossIII实际上根本没有.有时候,两个人会在同一时间提供类似的答案,特别是当有一个规范的答案时.坦率地说,我认为我的答案稍微好一些,因为协议的名称更合适. (3认同)