2012-01-28 9 views
1

悪いタイトルで申し訳ありませんが、私はこの質問を他に何を呼び出すべきか分かりませんでした。とにかく、私は次のものを持っているとします:Objective-Cでは、@synthesizeの後のコードは何を意味しますか?

@synthesize display = _display 

私の質問は、表示と_displayの違いは何ですか?それぞれは何を参照していますか?明確にするために

、私は@synthesizeが何を知っている(それはゲッターとセッターを作成します)が、私は正確にどのような違いがどのような表示はわからないとを参照してください_Display。

私は、Javaで堪能ですので、可能な限りそれにあなたの答えを関連付けます。

おかげ

+0

が重複する可能性を[@synthesizeウィンドウを何=行う_window?](http://stackoverflow.com/questions/5170631/what -do-synthesize-window-window-do) –

答えて

6

displayは、プロパティの名前です。 getterとsetterの呼び出しにも影響します。

_displayは、プロパティがアクセスするオブジェクトで基本となるフィールドです。一部の人々はプロパティと同じままにしたい - この動作はデフォルトで行われるため、簡単です。フィールドの前にアンダースコアを付けたい人もいます。 (いくつかのクレイジーの人々はまた、完全に別の名前を使用したいが、彼らはクレイジーだ。)の

+0

私はあなたが特定のグループの人々を狂ったと正当に認識したからといって、文書引用の答えに対するあなたの答えを好む。 – nil

+0

最近フィールドを宣言しないようにしました。 "@property"と "@synthesize"は、あなたがそれを省略するとあなたのためにフィールドを宣言するので、(IMHO)コードをよりきれいにします。 – samkass

+0

私は論理的な次の質問は、プロパティとこの基礎となるフィールドの違いは何かと思いますか?申し訳ありませんが、これは間違った質問ですが、私はObjective-Cを初めて使っています。私は単純な答えが必要です。プロパティとこの「基礎となるフィールド」の両方が、Javaのインスタンス変数と非常によく似ているようです。 – Nosrettap

3

Declared Properties - Property Implementation Directivesから:

次の例のように、特定のインスタンス変数は、プロパティのために使用されるべきであることを示すために、フォームproperty=ivarを使用することができます。

@synthesize firstName, lastName, age=yearsOld; 

これは、のアクセサメソッド、lastName、及びageを合成する必要があり、プロパティageyearsOld変数インスタンスによって表されます。

0

これは、ディスプレイのgetterとsetterが_displayメンバ変数へのアクセスを提供すると言っています。

これを使用して、プロパティの名前を外部から変更できます。

関連する問題