iOSアプリ開発:配列について

投稿者: | 投稿日時: 2014/6/8 17:16 | 更新日時: 2021/1/1 18:17

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];

もっと楽に記述出来る!ここ間違ってる!等、何かありましたら教えて頂けると助かります。

iOSアプリ開発:配列について」への1件のフィードバック

  1. ピンバック: 一覧:開発関連 – KittenKitten

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください