2015年3月17日火曜日

Objective-Cの多次元配列

Objective-Cでの2次元配列の使い方

配列に設定
2次元配列の場合
NSArray *dustName = 
          [NSArray arrayWithObjects:@[@"A"@"B"@"C"],
                                    @[@"D"@"E"@"F"]nil];
これで3×2の2次元配列ができる。[]がそれぞれ1次元。中のA, B, Cなどがそれぞれ2次元。
中身へのアクセスは、
NSLog(@"%@",dustName[0][1]); //結果は「B」
などとなる。
古い書き方で
NSLog(@"%@",[[dustName objectAtIndex:0] objectAtIndex:1]);
とも書けるが益はない。



3次元配列の場合
NSArray *dustName
      [NSArray arrayWithObjects:@[@[@"A", @"B"], @[@"C", @"D"]],
                                @[@[@"E", @"F"], @[@"G", @"H"]],nil];
これで2×2×2の3次元配列ができる。
[]がそれぞれ1次元。[]がそれぞれ2次元。中のA, Bなどがそれぞれ3次元。
中身へのアクセスは、
NSLog(@"%@",dustName[0][1][0]); //結果は「C」
NSLog(@"%@",dustName[0][1][1]); //結果は「D」
古い書き方では
NSLog(@"%@",[[[dustName objectAtIndex:0] objectAtIndex:1] objectAtIndex:1]);

このように多次元配列はできるけど、定義も使用もややこしいので、あまりデータ量が多くなるなら、カスタムクラスを使うなど別の方法を考えたほうがいいかも。

0 件のコメント:

コメントを投稿