2015-11-03 136 views
0

我在使用2D数组时遇到了很大的麻烦。在Objective-c中我可以使用2d数组,如下所示。如何在swift中将元素追加到二维数组中?

NSMutableArray *arrMain = [[NSMutableArray alloc] init]; 
NSMutableArray *arrSub = [[NSMutableArray alloc] init]; 

[arrMain addObject:arrSub]; 
[arrSub addObjects:@[@"1",@"2",@"3",@"4"]] 
NSLog(@"arrayMain:%@",arrMain); 

它显示了arrSub中的所有对象。 但是,在迅速显示什么。 我想这是因为引用类型。我如何追加(或引用)像objective-c的第二个数组?

回答

1
var arr1 = [1,2,3] 
var arr2 = [arr1] 
print(arr2) // [[1, 2, 3]] 
arr1.append(0) 
print(arr1) // [1, 2, 3, 0] 
arr2.append([5,6]) 
print(arr2) // [[1, 2, 3], [5, 6]] 

withUnsafeMutablePointer(&arr2) { (parr2) -> Void in 
    parr2.memory[0].append(4) 
} 

print(arr2) // [[1, 2, 3, 4], [5, 6]] 

要小心!这真的是不安全的...你必须确切地知道,你在做什么

0

在Objective-C中,NSArray,NSMutableArray都是引用类型。在Swift中,Array是值类型。你可以创造二维数组是这样的:

var array1 = [[Int]]() // modus 1 
array1.append([10]) 


var array2 = Array<Array<Int>>() // modus 2  

我认为作案1显然

相关问题