【问题标题】:What's the benefits of conforming to a protocol and do I need to declare it so if a superclass does?遵守协议有什么好处,如果超类这样做,我是否需要声明它?
【发布时间】:2011-10-07 20:30:05
【问题描述】:

我正在编写一个快速简单的表格视图应用程序。我已将创建表视图的视图声明为 UITableViewController 的子类。 UITableViewController 符合 UITableViewDelegate 和 UITableViewDataSource 协议。

我的问题是,我的视图是 UITableViewController 的子类,是否也需要声明它符合这些协议?

另外,遵守协议有什么好处,意思是放在子类之后?无论标题中提到的协议如何,只要方法都存在,我编写的代码就可以工作。

如果我将 UITableView 添加到 UIViewController 子类中会有什么不同吗?

【问题讨论】:

  • 回答你的最后一个问题:没有。你可以继承 UITableViewController,你可以继承 UIViewController 并添加一个 UITableView 出口。如果你为表视图实现了委托或数据源协议,你应该在接口中声明它们。

标签: objective-c ios uitableview


【解决方案1】:

由于您从符合这些协议的类继承,因此不需要在子类中声明您符合它们。

声明您遵守协议的好处是某些委托属性将需要一个明确声明它遵守它们的类的实例。此外,如果您确实遵守协议,最好声明您遵守协议。

【讨论】:

  • 那么在那些不需要这样做的情况下,良好的编程实践同样重要吗?
  • 遵守协议本质上是在说“我实现了这组方法”。实现协议的方法而不在标头中明确声明您符合它类似于在您实现但不在标头中声明的对象上调用方法。所以,我想你可以说这是一种很好的做法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-14
  • 2019-06-06
  • 1970-01-01
  • 2022-08-21
  • 2022-12-18
  • 2017-02-27
  • 1970-01-01
相关资源
最近更新 更多