2014-10-31 69 views
1

这样的IM瞎搞与SWIFT阵列,他们似乎在某些领域相当missleading虽然大部分的东西固定在Xcode 6.1阵列阵列SWIFT行为

我想打一个数组的数组,但它需要存储引用,而不仅仅是值。我怎样才能存储数组的引用,以便更新也会在“外部数组”上生效?

var a1 = [1,2] 

var allarrays = [[Int]]() 

allarrays.append(a1) 

a1.append(99) 

allarrays 

allarys仍然给我我[1,2]在这里,而不是[1,2,99]

回答

1

不幸的是(针对您的具体问题)迅速阵列值类型和因此,它们总是按价值传递。

可能工作(有固有的缺点)一种解决方法是使用NSMutableArray,这是引用类型(即,类)代替:

var a1: NSMutableArray = [1,2] 

var allarrays: NSMutableArray = NSMutableArray() 

allarrays.addObject(a1) 

a1.addObject(99) 

allarrays // [[1, 2, 99]]