【问题标题】:Is it OK to override UIViewController methods on a category on UITableViewController是否可以在 UITableViewController 上的类别上覆盖 UIViewController 方法
【发布时间】:2014-03-12 21:07:26
【问题描述】:

我知道您不应该覆盖在该类别所针对的类中定义的类别中的方法。但是覆盖继承的方法呢?可以吗?

具体来说,UITableViewController 从 UIViewController 继承了 viewWillAppear:、viewWillDisappear、viewDidLoad: 等方法。

所以,假设在 UITableViewController 上的一个类别中,我们覆盖了从 UIViewController 继承的那些方法。

可以吗?

据我所知,只有当 Apple 在未来的 UIKit 版本中决定覆盖 UITableViewController 中的这些方法时,这才会中断。

还有其他理由不这样做吗?

编辑:

因此,我注意到了文档中有关在类别中覆盖方法的部分,因此感谢您的回答。

我必须通过子类化和可能的扩展来解决这个问题。

【问题讨论】:

  • 有理由不子类吗?

标签: objective-c uiviewcontroller overriding uitableview objective-c-category


【解决方案1】:

不鼓励覆盖类别中的方法。见Overriding methods using categories in Objective-C

在我看来,这是否意味着重写继承或类定义的方法并不重要。为什么要有所作为?为什么不子类化?

【讨论】:

  • 使用类别的主要动机是我想在我的类中添加多个狭义定义的行为。由于多重继承不是一种选择,我不知道如何在没有类别的情况下实现这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-24
相关资源
最近更新 更多