2

是否可以实现协议链接?

例如,我正在定义一个新协议(ProtocolA),并且我想确保它只能应用于符合ProtocolB的对象。所以像...

@protocol ProtocolA <NSObject<ProtocolB>>
@end

问题

目标 C 允许这种行为吗?如果没有,是否有我应该注意的设计模式来达到类似的效果?

4

1 回答 1

4

不要使用内嵌协议(格式不正确),只需用逗号分隔每个单独的协议,如下所示:

@protocol ProtocolA <NSObject, ProtocolB>
@end

这是完全合法的。事实上,数百个 UIKit 协议都是按照这些思路声明的。

于 2012-04-13T04:58:43.267 回答