0

重複の可能性:
Objective C でプロパティ名の前にアンダースコアを付ける

プロパティを合成するとき、誰かがやっていることがわかりました:

@synthesize myVar = _myVar;

「_myVar」とは何か、単純に実行することとの違いは次のとおりです。

@synthesize myVar;        

最後に、最後のソリューションよりも最初のソリューションを優先する必要があるのはいつですか?

ありがとうルカ

4

3 に答える 3

2

あなた_myVarの例に実際にあるのは、あなたの財産を支えている ivar の名前です。デフォルトでは、プロパティを合成すると、同じ名前の ivar が作成されます。したがって、プロパティを使用して、setter/getter を介して ivar を設定したり、_myVar変数に直接アクセスしたりできます (もちろん KVC/KVO をバイパスします)。

編集: Cocoa の Apple のコーディングガイドラインから

...多くの場合、宣言されたプロパティを使用すると、対応するインスタンス変数も合成されます。

インスタンス変数の名前が、格納されている属性を簡潔に表していることを確認してください。通常、インスタンス変数に直接アクセスするべきではなく、代わりにアクセサ メソッドを使用する必要があります (init メソッドと dealloc メソッドでインスタンス変数に直接アクセスします)。これを知らせるために、インスタンス変数名の前にアンダースコア (_) を付けます...

于 2012-05-18T11:31:03.867 に答える
-1

プライベート変数の名前です。

他の投稿で私の答えを見てください:答え

于 2012-05-18T11:39:23.917 に答える
-1

setterとgetterで既存のデータメンバーを使用する場合は、そのように指定できます。

例:@ synthesize personName = pName;

これにより、便宜上、personNameの代わりにpNameを使用できます。

于 2012-05-18T11:24:04.207 に答える