如何在Objective C中构建多维对象数组

时间:2012-10-23 15:56:00

标签: objective-c multidimensional-array

  

可能重复:
  How do I create a multidimensional array?

我是编程和目标C的新手,所以虽然我在这里讨论了几个讨论多维数组的问题,但我还没有完全掌握我需要做的事情来构建和使用我自己的。

我需要创建一个包含16行和3列的数组。该数组需要接受字符串对象。我不知道如何创建,填充或访问其内容。有人愿意为我打破它吗?

1 个答案:

答案 0 :(得分:11)

我建议您使用C阵列,因为NSArray不支持多维度。你可以像这样声明你描述的数组:

NSString *stringArray[16][3];

设置和访问此数组的任何字符串非常简单:

stringArray[7][1] = @"Stringstringstring";

NSString *string = stringArray[3][0];

但是,你可以使用NSArray(或NSMutableArray),但这样会有点不那么优雅:

NSArray *stringArray = [NSArray arrayWithObjects:
                        [NSMutableArray array],
                        [NSMutableArray array],
                        [NSMutableArray array], nil];

这三个NSMutableArray将是你的二维数组的三列。

修改

使用NSArray,使用循环来填充它可能更容易:

NSMutableArray *stringArray = [NSMutableArray array];

for (int column = 0; column < 3; column++)
{
    NSMutableArray *columnArray = [NSMutableArray array];

    for (int row = 0; row < 16; row++)
        [columnArray addObject:[NSString stringWithFormat:@"Row %i, column %i", row, column]];

    [stringArray addObject:columnArray];
}