我想创建NSMutableArray的NSMutableArray。下面是伪代码:
NSMutableArray *mapcoords = [[NSMutableArray alloc] init];
NSMutableArray *clustercoords = [[NSMutableArray alloc] init];
while (!FINISHED)
{
for(int j = 1;j <= 4;j++)
{
x = arc4random_uniform(45);
[mapcoords addobject:[NSNumber numberWitInt:x]];
}
[clustercoords addobject:mapcoords];
[mapcoords removeAllObjects];
}
当我在循环结束时检查“clustercoords”数组时,所有对象都包含相同的值。我想这一定是因为我每次将它添加到clustercoords时指向同一个对象(mapcoords)。
我认为我需要一个不同的几个不同的“mapcoords”数组,以便mapccords中的对象是唯一的。这是正确的假设吗?还有另一种选择吗?
答案 0 :(得分:1)
你的假设是正确的。在mapcoords
循环中移动while
的声明和创建。
NSMutableArray *clustercoords = [[NSMutableArray alloc] init];
while (!FINISHED) {
NSMutableArray *mapcoords = [[NSMutableArray alloc] init];
for(int j = 1; j <= 4; j++) {
u_int32_t x = arc4random_uniform(45);
[mapcoords addObject:@(x)];
}
[clustercoords addObject:mapcoords];
}