2011-04-19 68 views

回答

5

不能创建具有不同尺寸的行静态二维数组的iOS做到这一点的最好办法。

也许你可以使用NSArrays而不是C数组来实现这一点。

编辑: 这是乏味的,但你可以尝试:

NSArray *array1 = [[NSArray alloc] initWithObjects:[NSNumber numberWithInt:2],[NSNumber numberWithInt:1],[NSNumber numberWithInt:3],nil]; 

等了每个阵列,然后

NSMutableArray *mutableArray = [[NSMutableArray alloc] init]; 
[mutableArray addObject:array1]; 
+0

是啊我想知道如何 – SuperString 2011-04-19 19:39:07

3

无论Ç也不Objective-C的真正支持二维数组。相反,无论使用哪种语言,都可以创建一个数组数组。用C这样做可以让你为int的二维数组2行3列,反之亦然同样的效果:

int foo[2][3]; 

你可以在Objective-C类似的东西,但因为你不能创建静态的对象,并且无法修复一个可变数组的大小,和NSMutableArray的持有对象的指针,而不是整数,这是不完全一样:

​​
1
NSArray *array = @[@[@1, @2, @3], 
        @[@94, @22], 
        @[@2, @4, @6], 
        @[@1, @3, @5, @6]]; 

NSMutableArray *arrayM = [[NSMutableArray alloc] init]; 

for(NSArray *nextArray in array) 
    arrayM addObject:[[NSMutableArray alloc] initWithArray:nextArray]; 
+1

这是正确的,除了'Mutable'部分。 :-P – lnafziger 2013-07-29 04:15:30