2

Objective-C でオブジェクト指向プログラミングを学んでいますが、メソッドの宣言と実装について少し混乱しています。

私が研究しているいくつかの講義では、教授はパブリック メソッドを .h ファイルで宣言し、それらを .m ファイルで実装しています。または、.m ファイルでそれらを非公開として宣言し、@implementation ClassViewControllerセクションでそれらを実装することもできます。

ただし、メソッドをまったく宣言せず、@implementation ClassViewControllerセクションのメソッド実装にスキップすることもあります。

パブリックまたはプライベートのいずれかを宣言する場所、または何も宣言する必要がない場所を区別するにはどうすればよいですか?

4

2 に答える 2

2

メソッドを外部クラスからアクセスできるようにする場合は、メソッドをパブリックに宣言する必要があります。それ以外の場合は、プライベートに宣言する必要があります。スーパークラスで宣言されたメソッドは、オーバーライドする場合、そのサブクラスで再度宣言する必要はありません。以前の宣言なしで実装されたメソッドに関しては、そのメソッドを呼び出すことはできますが、ファイル内のその下のメソッドにのみ「表示」され、そうでない場合は警告がスローされます。そのため、そのメソッドが@selectorのターゲットであることが意図されている場合を除いて、これが行われることはめったにありません(代わりに非公開で宣言されます)。

于 2012-06-13T01:43:09.070 に答える
1

簡単に言うと、すべてのメソッドを(パブリックまたはプライベートで)宣言する必要があります。

しかし、教授が実際に見たのは、スーパークラスですでに宣言されているメソッドをオーバーライドしたことだと思います。

したがって、たとえば、viewDidLoadCustomViewControllerでオーバーライドする場合viewDidLoad、そのメソッドはUIViewController(スーパークラス)のヘッダーですでに宣言されているため、再度宣言することはありません。

サブクラスの実装に移動し、継承した実装viewDidLoadオーバーライドする実装を作成するだけです。もう一度講義を見に行くと、それがあなたが見たものだと思います。

于 2012-06-13T01:53:21.357 に答える