今、こちらのサイトで、Objective-C 2.0の仕様書を読んでいるのですが、その中で、メソッド定義に関して、どうも慣れない点が。
それは、ラベルという概念なんだけど、Javaの場合、クラスとメソッドの定義はすごくおおざっぱに書いてしまうと、
class hoge{ |
であるのに対して、Objective-cでは同じことを書こうとすると、
@interface hoge{ |
となるみたいです。
この辺は、どーやらC++とも違うみたいで、メソッドにアクセスするときも
hoge *hoge_instance; |
となり、しかも、メソッドの名前も「foo」ではなく、「foo:lrabel:」となってしまうみたいです。
これがどーしても納得できないんですよね。
例えば、ラベルを使わずに、
hoge *hoge_instance; |
と表したり、
hoge *hoge_instance; |
と書いたりするなら納得できるのですが、実際、一個目の例はコンパイルしてもエラーや警告を発信しないみたいなのですが、同仕様書によると非推奨と記載されていました。
なので、やはりラベルを記載するみたいです。
したがって、引数が1つの場合は、単純にメソッド名は、fooとなり、複数の場合とでは、完全にメソッド名が違うみたい。
慣れるまで時間がかかりそうです。。。www
0 コメント:
コメントを投稿