2014-10-31 52 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]]