インスタンス変数(メンバ変数)ですよね、それ。
Objective-C だけじゃなく、c++ でも、そういう流儀があります。
ソースの一部を見ただけ(宣言部を見なくても)で、どういう意図で使われているのかを分かりやすくするため、という意味があります。
Objective-C の場合には、流儀と言うよりも、もうちょっと強い縛りを持つようです。
http://www.awaresoft.jp/ios-dev/item/115-ivar-naming-convention.html
To help to signal this, prefix instance variable names with an underscore (_), for example:
...
インスタンス変数には直接アクセスすべきでなく、アクセサメソッドを使うべきであり、それを分かりやすくするために、インスタンス変数を_(アンダースコア)で始めるようにと明記してくれていました。
ざっと探して見ましたが、文法上、アンダースコア(_)に特別な意味はないようです。
ただ、よくある命名則として、プライベートだとかローカルだとかそれに類する意味を持たせる事が多いです。
なので、『Objective-Cで.hファイルで定義した変数を.mファイルで先頭に「_」(アンダーバー)を付けて使っている』ということそのものはないですが、下記の件の事なのではないかと思いました。
//具体例見てないんで、こういうのとは別に、単にアンダーバー付けた識別子を使ってるという事もあるとは思います。
http://www.awaresoft.jp/ios-dev/item/115-ivar-naming-convention.html
プロパティに対応するインスタンス変数の変数名をプロパティ名と別にすべきか、また、インスタンス変数名をアンダースコア(_)で始めるべきかどうか、さまざまな場所で議論になっている
ただ別の流儀もあって
_で始めるべきではないという主張では、AppleがCoding Guidelines for Cocoaで、「変数名は小文字で始めるべき」「AppleはCocoaのフレームワークでプライベートメソッドを_で始めるようにしているので、メソッド名は_で始めるべきではない」としていることを根拠として挙げられるようです。(これについては下の補足をご覧ください。)
とか
ネットで検索すると、アンダースコアを付けることは勧めない(好みじゃないとか、それは古いやり方だとか)という人もいる。
http://www.smallmake.com/wp/?p=798
とか
命名規則
プロパティに対応するインスタンス変数名は、アンダースコア(_)で終わらなければなりません。プロパティ名は、対応するインスタンス変数名から最後のアンダースコア(_)を取り除いたものにするべきです。
http://kyykblog.blogspot.jp/2010/11/blog-post_15.html
とか
- インスタンス変数については「後ろに」アンダースコアをつけるスタイルで書いています。前に入れない理由は「将来的にも余計なトラブルが避けられる」から。
http://tsurumura-seisakusho.blogspot.jp/2012/03/objective-c.html
とか
色々ありますね。
▽3
●
taroe ●60ポイント ベストアンサー |
Objective-C: インスタンス変数のアンダースコアについて
http://www.smallmake.com/wp/?p=798
インスタンス変数にアンダースコアを付けることで、ローカル変数と見分けやすくするという手法がある。
文法上、言語上は意味はない。
あとはネーミングルールの問題です。
インスタンス変数を直に参照するのはやめてくれという意思表示程度です。