我需要加速声明一个二维数组,而下面的“示例”在分配完成时太慢了。如何分配10列,其中每列最多可包含20个元素...让剩余部分为nil / null。是否有自动化,或者我是否必须遍历每个列并使用20个nil对象添加对象(SLOW)和init?
ppp = [NSMutableArray arrayWithCapacity: 10];
[ppp addObject:[[NSMutableArray alloc] initWithObjects:
@"1",
@"2",
@"3",
@"4",
nil
]];
[ppp addObject:[[NSMutableArray alloc] initWithObjects:
@"a1",
@"b2",
@"c3",
nil
]];
感谢...
(让我这样说吧:在“standard-c”中我可以声明“* char person [100] [100]”...空间声明完成。现在只需写入地址。动态分配是很多行交换是cpu和内存消耗。在“Objective-c”中有什么东西可以完成NSArray * person [100] [100]的事情吗?)
答案 0 :(得分:1)
为什么不使用单个NSMutableArray并计算行和列,而不是使用数组数组?我知道您的2D阵列是不规则的,即每个“子”阵列可能有不同的长度,但您可以计算最大值。你桌子的“宽度”和最大“高度”,只需留下一些物品:
ppp = [[NSMutableArray alloc] initWithObjects:
@"1", @"2", @"3", @"4", @"", @"",
@"a1", @"b2", @"c3", @"", @"", @"",
etc...
];
现在你只需将item [1,2]计算为itemAt:6 * 1 + 2。
不确定这是否有帮助,但它可能会加快速度。
另一种方法是使用简单的C数组。