是否可以实现协议链接?
例如,我正在定义一个新协议(协议 A),我想确保它只能应用于符合协议 B 的对象。所以像...
@protocol ProtocolA <NSObject<ProtocolB>>
@end
问题
目标C允许这种类型的行为吗?如果没有,我应该注意设计模式才能达到类似的效果吗?
与其使用内刻协议(这是不正确的格式),只需用逗号分隔每个单独的协议,如下所示:
@protocol ProtocolA <NSObject, ProtocolB>
@end
这是完全合法的。事实上,有数百个 UIKit 协议是按照这些思路声明的。