【问题标题】:When use protocol in objective-c?什么时候在objective-c中使用协议?
【发布时间】:2014-12-29 14:28:37
【问题描述】:

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

【问题讨论】:

标签: objective-c protocols


【解决方案1】:

Objective-C 没有多重继承,但你可以实现多个协议。因此,协议提供了一个合同保证(由编译器检查)该类实现了所需的方法,但不要求特定的祖先类位于继承链中。

【讨论】:

    【解决方案2】:

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

    假设您有一个窗口,其中包含两个 ViewController 类,名为 colorWellViewcontoller 和 chartReportViewController。现在 colorWellViewcontoller 类有一个连接到 colorWell 的操作方法,当用户更改颜色时将触发。现在您希望如果颜色井颜色已更改,那么应在您的 chartReportViewController 图表中应用相同的颜色。

    所以在上述情况下,您想要发送消息,例如每当调用操作方法时,将颜色信息传递给另一个视图控制器。所以在这种情况下你可以使用protocol.

    【讨论】:

      猜你喜欢
      • 2011-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-15
      • 1970-01-01
      • 2015-07-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多