在Java中,我有类似的东西
String arr[][] = new String[][];
for(int i=0;i<=count;i++) //"count" is some dynamically determined counter
{
for(int j=0;j<=count;j++)
{
arr[i][j] = //some assignment
}
}
//retrival of the strings in the same manner
我想声明一个空的2D数组,然后动态地为它指定'String'值,并在以后检索它们。 如何在Objective-C中实现这一目标?
我检查了一些关于这个主题的答案,但存储和反击机制对我来说仍然不清楚。
答案 0 :(得分:2)
基本上你对对象做同样的事情,但必须为每个内部数组创建实例:
NSMutableArray *outer = [NSMutableArray new];
for( NSUInteger i = 0; i<=…; i++ )
{
NSMutableArray *inner = [NSMutableArray new];
for( NSUInteger j = 0; j<=…; j++ )
{
inner[j] = …;
}
outer[i] = inner;
}
访问:
id value = outer[…][…];
也许这更容易理解,因为双重下标用于在初始化时写入数组。但它对外部数组上的索引访问有性能损失:
NSMutableArray *array = [NSMutableArray new];
for( NSUInteger i = 0; i<=…; i++ )
{
array[i] = [NSMutableArray new];
for( NSUInteger j = 0; j<=…; j++ )
{
array[i][j] = …;
}
}