0

ポールの講義は本当に素晴らしいと思います..質問があるのですが、もしよろしければ誰かが答えてくれるかもしれません.. 講義 4 で、新しい API を CalculatorBrain クラスに実装するときに、(id)program プロパティが宣言されたのはなぜですか?ヘッダー ファイル (パブリック プロパティにする)、programStack プロパティのように実装ファイルで宣言しないのはなぜですか。また、実装ファイルで宣言されているプロパティ (基本的には programStack などのプライベート プロパティ) のアクセサ メソッドは公開されていますか? 彼がインスタンスメソッド「performOperation」でself.programスタックを呼び出しているのがわかります)。誰かが助けてくれれば本当にありがたいです。:)

4

1 に答える 1

2

properties declared in header and implementation file

In header は、他のすべてのクラスで使用できることを意味します。これらは、アクセス指定子 ( @publilc 、 @protected ) に従って、保護されているか公開されています。

実装ファイルでは、外界に対して隠蔽されます。(これらは非公開なので継承されません)

理論上: ヘッダー ファイルは、クラスのパブリック インターフェイスのみを公開する必要があり、それ以外はすべて実装に属します。

また、実装ファイルの ivar はサブクラスからは見えません。これは、サブクラス化する必要があるセッターとゲッターを手動で生成した場合、少し扱いに​​くい場合があります。

于 2013-01-14T12:52:37.547 に答える