NSMutableArrays 的 NSMutableArray

NSMutableArray of NSMutableArrays

我想创建一个 NSMutableArrays 的 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 中的对象是唯一的。这是正确的假设吗?还有其他选择吗?

你的假设是正确的。将 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];
}