※Qiitaで書いていた記事をお引っ越ししてきました。
10062views、11LGTMありがとうございました。
今後はこちらで更新していきます。
変更のない配列を手間少なく用意したい!となる場面は多々あるかと思います。(自分は結構あります)
文字列を入れるならそこまで大変ではありませんが、intやfloatになるとそのままだとエラーとなってしまいます。
NSArray *test = [NSArray arrayWithObjects:@"a", nil];
記述について、大分楽な書き方があるのを知りましたので書いておきます。
1次元配列を用意
パターン1
そのまま値を入れようとするとエラーとなってしまう為、NSNumberでゴリゴリと入れて大変見にくくなっています。
NSArray *test = [NSArray arrayWithObjects:[NSNumber numberWithInteger:0], [NSNumber numberWithInteger:1], [NSNumber numberWithInteger:2], [NSNumber numberWithInteger:3], nil];
パターン2
なんと、@
を使う事により、こんな見やすく記述出来ました。
NSArray *test = @[@0, @1, @2, @3];
1次元配列を用意(変数)
ほぼ直接値を入れる場合と同じです。
が、括弧が無いとパターン2で怒られてしまいます。
パターン1
こちらもそのまま値を入れようとするとエラーとなってしまう為、NSNumberでゴリゴリと入れて大変見にくくなっています。
int val = 0;
NSArray *test = [NSArray arrayWithObjects:[NSNumber numberWithInteger:val], [NSNumber numberWithInteger:val], [NSNumber numberWithInteger:val], [NSNumber numberWithInteger:val], nil];
パターン2
なんと、こちらも@
を使う事により、こんな見やすく記述出来ました。
あと、括弧も付けないとエラーが出てしまうので注意。
int val = 0;
NSArray *test = @[@(val), @(val), @(val), @(val)];
2次元配列を用意
パターン1
1次元同様、NSNumberでゴリゴリと入れて更に大変見にくくなっています。
NSArray *test = [NSArray arrayWithObjects:[NSArray arrayWithObjects:[NSNumber numberWithInt:0], [NSNumber numberWithInt:1], [NSNumber numberWithInt:2], [NSNumber numberWithInt:3], nil], [NSNumber numberWithInt:10], [NSNumber numberWithInt:20], [NSNumber numberWithInt:30], nil];
パターン2
1次元同様、こんな見やすく記述出来ました。
NSArray *test = @[@[@0, @1, @2, @3], @10, @20, @30];
配列から値を取得
パターン1
やや面倒ですね。
int testValue = [[[mPosTbl objectAtIndex:0] objectAtIndex:0] intValue];
パターン2
結構すっきりした記述で出来ます。
int testValue = [mPosTbl[0][0] intValue];
もっと楽に記述出来る!ここ間違ってる!等、何かありましたら教えて頂けると助かります。
ピンバック: 一覧:開発関連 – KittenKitten