頭と尻尾はくれてやる!

パソコンおやじのiPhoneアプリ・サイト作成・運営日記


メソッド(関数)への引数にNSArrayじゃない配列を使う

メソッド(関数)とのやりとりの引数、返り値に配列を使うにはどうすればいいんだろうってお話だよ。

配列といってもNSArrayじゃないんだ。ほら、NSArrayだと数値を入れるのにNSNumberを介さないとだめだから面倒だし、実際処理に時間がかかっちゃう場合があるんだよね。
だから最近は
float array[100];
みたいな感じの配列をよく使うんだ。ここでもこういう配列を関数の引数や戻り値としてやりとりしてみるよ。

まず、引数にこういう配列を使う場合。
メソッドをObjective-Cっぽく(?)書くとこんな感じで。
{
    float array1[3];
    array1[0] = 1.2f;
    array1[1] = 3.4f;
    array1[2] = 5.6f;
    float average1 = [self getAverage1ForArray:array1 nData:3];
    NSLog(@"average1 = %f",average1);
}

-(float)getAverage1ForArray:(float *)array nData:(int)nData
{
    float total = 0.f;
    for (int ii=0;ii < nData;ii++) {
        total += array[ii];
    }
    return total/nData;
}
メソッドへデータ数を教えてあげないといけないのがややめんどうだけどこれで実現はできる。

それじゃ次にC言語っぽく(?)書いてみるよ。
{
    float array2[3];
    array2[0] = 1.2f;
    array2[1] = 3.4f;
    array2[2] = 5.6f;
    float average2 = getAverage2(array2,3);
    NSLog(@"average2 = %f",average2);
}

float getAverage2(float array[] , int nData)
{
    float total = 0.f;
    for (int ii=0;ii < nData;ii++) {
        total += array[ii];
    }
    return total/nData;
}
こういうのだともらう側はfloat array[]って記述するように配列でもらってるんだぜってわかるよね。
ちなみに平均値計算部分は上下とも同じだね。

次は返り値に配列を使う場合を書こうかと思ったけど長くなったので今回はここまでにしとくよ。



<< メソッド(関数)への返り値にNSArrayじゃない配列を使う   TopPage  アイリスオーヤマのLEDシーリングライトを買ってみた >>

コメント


管理者にだけ表示を許可する
 

トラックバック

トラックバックURL
http://ringsbell.blog117.fc2.com/tb.php/650-39341b34




Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.

FC2Ad