假设Class1
和Class2
使用相同的方法method1
。在那种情况下,我可以使用协议。我可以声明一个名为Superclass
的超类而不是协议,并在该类中实现method1
。现在我可以扩展Class1
和Class
2。之后我可以使用method1
。那我为什么需要协议呢?使用协议有什么好处?
答案 0 :(得分:2)
Objective-C没有多重继承,但您可以实现多个协议。因此,协议给出了一个契约保证(由编译器检查),该类实现了所需的方法,但没有要求特定的祖先类在继承链中。
答案 1 :(得分:1)
协议用于将消息从一个对象发送到另一个对象。除此之外,它还定义了类实现的必需和/或可选方法的列表。如果一个类采用协议,它必须在它采用的协议中实现所有必需的方法。 请参阅以下示例何时使用协议: -
考虑你有一个窗口,其中包含两个名为colorWellViewcontoller和chartReportViewController的ViewController类。现在,colorWellViewcontoller类有一个连接到colorWell的动作方法,当用户更改颜色时将触发该方法。现在你想要的是如果颜色颜色已被更改,那么应该在chartReportViewController图表中应用相同的颜色。
因此,在上述情况下,您希望发送消息,例如调用操作方法时,将颜色信息发送到另一个视图控制器。因此,在这种情况下,您可以使用protocol.