プロパティを合成するとき、誰かがやっていることがわかりました:
@synthesize myVar = _myVar;
「_myVar」とは何か、単純に実行することとの違いは次のとおりです。
@synthesize myVar;
最後に、最後のソリューションよりも最初のソリューションを優先する必要があるのはいつですか?
ありがとうルカ
プロパティを合成するとき、誰かがやっていることがわかりました:
@synthesize myVar = _myVar;
「_myVar」とは何か、単純に実行することとの違いは次のとおりです。
@synthesize myVar;
最後に、最後のソリューションよりも最初のソリューションを優先する必要があるのはいつですか?
ありがとうルカ
あなた_myVar
の例に実際にあるのは、あなたの財産を支えている ivar の名前です。デフォルトでは、プロパティを合成すると、同じ名前の ivar が作成されます。したがって、プロパティを使用して、setter/getter を介して ivar を設定したり、_myVar
変数に直接アクセスしたりできます (もちろん KVC/KVO をバイパスします)。
編集: Cocoa の Apple のコーディングガイドラインから
...多くの場合、宣言されたプロパティを使用すると、対応するインスタンス変数も合成されます。
インスタンス変数の名前が、格納されている属性を簡潔に表していることを確認してください。通常、インスタンス変数に直接アクセスするべきではなく、代わりにアクセサ メソッドを使用する必要があります (init メソッドと dealloc メソッドでインスタンス変数に直接アクセスします)。これを知らせるために、インスタンス変数名の前にアンダースコア (_) を付けます...
プライベート変数の名前です。
他の投稿で私の答えを見てください:答え
setterとgetterで既存のデータメンバーを使用する場合は、そのように指定できます。
例:@ synthesize personName = pName;
これにより、便宜上、personNameの代わりにpNameを使用できます。