2012年12月29日土曜日

003-関数(メソッド, Xcode, Objective-C)

関数を作るのもひと苦労。。

hファイルとmファイルがあって、
どのように書けばいいのか?


引数の渡し方がわからない。。
呼び出し方がわからない。。

う〜ん。

本当にしんどかったので、共有いたします。


hファイルには


-(void) testkansu:()value;

とりあえず、こんな感じで
関数作成完了!!

voidは返し値なしという意味で、
関数名はtestkansu
引数はなしです。

関数名にはセンスがなく、
コーディング規約に違反してそうなんですが、
そこは置いといて、

mmファイルには

処理内容
-(void)testkansu;
{
    //処理実装
    oLabel1.text = @"関数から呼ばれたよ。";
}

呼び出し

[self testkansu:0];


■サンプルで作ってみました



■実行結果


前回作成した、プロジェクトを流用すると、結果はこんな感じです。

この関数に引数を渡すと、
どうなるのでしょう??

hファイルは
-(void) testkansu:(NSString*) sText;


mファイルは

-(void)testkansu:(NSString *) sText

こんな感じで。

呼び出しは
    [self testkansu:(@"引数渡した関数")];



ではでは、第3形態として、引数と返し値があるパターンです。

hファイル
-(NSString*) returnkansu:(NSString*) sText;

今まで、voidだった、場所に
返し値の型を記載するだけですね。
これは簡単!!

mファイル
-(NSString *)returnkansu:(NSString *) sText
{
    //処理実装
    return sText;

返し値はreturnで返します。
これもよくあるやつです。

呼び出し
    変数 = [self returnkansu:(@"返し値ありの関数")];


Objective-Cでは関数をメソッドといいいます。
[オブジェクト名 メソッド名1:引数1]




■今回の関数版を全部まとめたのがサンプルはこちら↓



■実行結果

これで、だいたい関数の使い方はわかりましたか??

hファイルの手前の - とか、どんな意味なのか?
引数が増えたら、どうするかとか?
スコープの範囲とか?

いろいろと謎も残っていると思いますが、
細かいことは気にしないで、今回はこのくらいで。

0 件のコメント:

コメントを投稿