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];
}
我想创建一个 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];
}