ページ

2010年11月4日木曜日

Objective-Cの文法とMacRubyでの書き方

リファレンスの見方とかよくわかってなかったので自分用まとめ。間違ってるとこなどあれば教えてください。

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"

ってなる。

長いので続く

1 件のコメント:

  1. とても魅力的な記事でした。
    また遊びにきます。
    ありがとうございます。

    返信削除