2

我一直在学习 Objective-C 中的面向对象编程,我对方法声明和实现有点困惑。

在我一直在学习的一些讲座中,教授在 .h 文件中声明公共方法,然后在 .m 文件中实现它们;@implementation ClassViewController或者他可以在 .m 文件中将它们声明为私有,并在该部分 中实现它们。

然而,有时他根本不声明方法,而只是跳到本@implementation ClassViewController节中的方法实现。

我如何区分在哪里声明公共或私有的东西,或者根本不需要声明任何东西?

4

2 回答 2

2

当您希望外部类可以访问该方法时,应公开声明方法,否则应私下声明。如果您重写了在超类中声明的方法,则不需要在其子类中再次声明它。至于在没有任何先前声明的情况下实现的方法,仍然可以调用该方法,但它仅对文件中它下面的方法“可见”,否则将引发警告。因此,很少这样做(而是私下声明),除非该方法打算成为@selector 的目标。

于 2012-06-13T01:43:09.070 回答
1

简短的回答是所有方法都应该声明(公开或私下)。

但我怀疑你实际上看到你的教授所做的是重写一个已经在超类中声明的方法。

例如,如果你想viewDidLoad在你的 CustomViewController 中重写,你不会viewDidLoad再次声明,因为该方法已经在 UIViewController(超类)的标头中声明了。

您只需转到子类的实现并编写您的实现,viewDidLoad该实现将覆盖您继承的那个。如果你再去看讲座,我猜这就是你所看到的。

于 2012-06-13T01:53:21.357 回答