我有两个类 - CompletionView和PauseView - 每个类都有一个关联的委托。我已经在CompletionDelegate中有一个函数returnHome,我需要在PauseView委托中使用相同的功能。我的问题是,我是否必须编写具有重复功能的两个函数?或者一个函数可以满足两个协议吗?即,CompletionDelegate和PauseDelegate都可以要求定义returnHome吗?
答案 0 :(得分:4)
您可以在外部标头中定义协议,将其导入CompletionView和PauseView,并根据该外部协议创建委托。
协议不一定需要直接与视图绑定。
请参阅this answer,但如果您的委托方法并不特别需要这些类,您可能甚至不需要定义@class和所有这些。您应该能够在returnHome
之类的内容下定义GeneralUseDelegate
,并在两个视图中定义/使用该委托。
@protocol GeneralUseDelegate
- (void) returnHome;
@end
没有测试,但无法想象为什么那样不起作用。
答案 1 :(得分:1)
您可以为CompletionView和PauseView创建一个公共超类,并定义协议并将委托属性放在那里