※個人で管理しているHPに引っ越ししました。
リンク切れ等考慮して本ページは残しておきますが、今後はHPのほうで更新します。
変更のない配列を手間少なく用意したい!となる場面は多々あるかと思います。(自分は結構あります)
文字列を入れるならそこまで大変ではありませんが、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];
もっと楽に記述出来る!ここ間違ってる!等、何かありましたら教えて頂けると助かります。