在objective-c中使用协议时?

时间:2014-12-29 06:01:31

标签: objective-c protocols

假设Class1Class2使用相同的方法method1。在那种情况下,我可以使用协议。我可以声明一个名为Superclass的超类而不是协议,并在该类中实现method1。现在我可以扩展Class1Class 2。之后我可以使用method1。那我为什么需要协议呢?使用协议有什么好处?

2 个答案:

答案 0 :(得分:2)

Objective-C没有多重继承,但您可以实现多个协议。因此,协议给出了一个契约保证(由编译器检查),该类实现了所需的方法,但没有要求特定的祖先类在继承链中。

答案 1 :(得分:1)

协议用于将消息从一个对象发送到另一个对象。除此之外,它还定义了类实现的必需和/或可选方法的列表。如果一个类采用协议,它必须在它采用的协议中实现所有必需的方法。 请参阅以下示例何时使用协议: -

考虑你有一个窗口,其中包含两个名为colorWellViewcontoller和chartReportViewController的ViewController类。现在,colorWellViewcontoller类有一个连接到colorWell的动作方法,当用户更改颜色时将触发该方法。现在你想要的是如果颜色颜色已被更改,那么应该在chartReportViewController图表中应用相同的颜色。

因此,在上述情况下,您希望发送消息,例如调用操作方法时,将颜色信息发送到另一个视图控制器。因此,在这种情况下,您可以使用protocol.