objective-cでインスタンス変数の前に_アンダーバーをつけるべきか、@property,@synthesize(.m)でどう記述すればよいのか?アイフォン、iPhone
従来私は、変数名の宣言ではアンダーバーを付けずにアプリを作っています。とりあえず問題はありませんでした。しかし、参考書籍にアンダーバーを記載している箇所があったりするとなぜ記載しているのか不思議になりますので、調べてみました。
English:
I made iPhone app for not adding “_” property in the past. no problem. As I read any coding books which used adding “_” variables, I wonder that which way is correct, so I check google.
XCODEを使ってobjective-Cを使っているとC, C++, JAVA, Windows MFCと違ったコーディング手法に戸惑いがあります。
それが、プログラマーの間でもいろいろと記述方法がまちまちだったりと混乱をしてしまいます。
混乱をしても、アプリがきちんと動作すれば良いわけで、つまり、いろいろな記載方法があると言うことだけわかっていれば良いのかもしれません。
また、XCODEのバージョンアップによっては今まで推奨とされていた記載方法が、数年後にダメになることもあるので、その点は覚悟している必要があるのでしょう。
とりあえず、
ヘッダーファイルで、_アンダーバーを付けて宣言して、
@propertyでは、_アンダーバーを付けない。
そして、.mファイルでは、
@synthesizeで、「_アンダーバーを付けない」=「_アンダーバーを付けて」とする。
つまり、
.h
NSString *_str;「_アンダーバーを付けて」
@property(nonatomic,strong) NSString *str;「_アンダーバーを付けない」
.m
@synthesize NSString *str=_str (現在の最新XCODE4.6.1では、@synthesize自身が必要ないとの情報もありましたがしばらくは付けてみようと思います。)
objective-c 変数 アンダーバーを – Google 検索
プロパティに対応するインスタンス変数の命名規則について – Awaresoft
http://www.kuma-de.com/blog/2012-06-25/3617
http://programming-ios.com/objective_c-property-self_dot-underbar/
How To Make a Tile-Based Game with Cocos2D 2.X