Cocoaには、NSStringというクラスがあり、NSStringには、文字列を作成するstringWithString:というメソッドがある。
リファレンスを見ると
+ (id)stringWithString:(NSString *)aString
と書かれているが、これは
+ (返り値型)メソッド名:(引数型)引数
ということ。
最初の「+」は、クラスメソッドであることを示し、「-」になっているものは、インスタンスメソッドであることを示す。
これを実際に使って、obakeという変数に"Qtaro"という文字列を入れるには
NSString* obake;
obake = [NSString stringWithString:@"Qtaro"];
とか書く。
NSString* obake; ってのは、int i; みたいなものでNSStringクラスのインスタンスのための変数を確保するという、まあとにかくObjective-Cではそう書くものだと思っていればいいもの。「*」が必要。
obake = [NSString stringWithString:@"Qtaro"];
の部分が、Objective-C的なメソッドの呼び出し方で、
返り値 = [クラス名 メソッド名:引数];
になってる。インスタンスメソッドの場合は [インスタンス名 メソッド名:引数] になる。
上は二行で書いたけど、
NSString* obake = [NSString stringWithString:@"Qtaro"];
って一行で書くほうがたぶん普通なんでしょう。
で、これをMacRuby的文法で書こうと思ったら、
obake = NSString.stringWithString "Qtaro"
ってなる。
長いので続く
とても魅力的な記事でした。
返信削除また遊びにきます。
ありがとうございます。