2015-11-03 132 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顯然

相關問題