2013/06/02

[obc]引数とラベルは別もの

昨日のメソッド呼び出しは、勘違いしていた。
引数=ラベルだと思っていたのだが、別なのだな。

- (void)Func :(int)param1  label2:(int)param2  label3:(int)param3;

第1引数に対するラベルは、メソッド名と同じ。
それ以降には、それぞれラベルを付けることができる。
また、ラベルは省略も可能で、昨日書いていたのは省略した形式になるのだろう。


ヘッダにはラベル付きで宣言しても、実装部にはラベルなしで定義することができるみたいだ(warningは出るが)。
そのときの呼び出しは、ラベルありでもラベルなしでもできるみたい。

また、ラベルありとラベルなしを同時に宣言することもできた。


- (void)Func :(int)param1  label2:(int)param2  label3:(int)param3;
- (void)Func :(int)param1 :(int)param2 :(int)param3;

そうすると、呼び出し側はラベルありでもラベルなしでも使うことができた。
まあ、意味はないんだけどね。


warningもerror扱いするようなコンパイルオプションが欲しいのだけど、見つからないなあ。。。


0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。