数组数组快速行为

时间:2014-10-31 23:26:30

标签: arrays swift

所以即时搞乱swift数组,虽然大部分内容都是在xcode 6.1中修复的,但它们在某些方面似乎相当误导了

我想创建一个数组数组,但它需要存储引用,而不仅仅是值。如何存储数组的引用,以便更新也将在"外部数组上生效"?

var a1 = [1,2]

var allarrays = [[Int]]()

allarrays.append(a1)

a1.append(99)

allarrays

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

1 个答案:

答案 0 :(得分:1)

不幸的是(对于您的特定问题)swift数组是值类型,因此它们总是按值传递。

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

var a1: NSMutableArray = [1,2]

var allarrays: NSMutableArray = NSMutableArray()

allarrays.addObject(a1)

a1.addObject(99)

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