2015-06-26 103 views
0

我正在從Obj-C切換到Swift,我從NSDictionary/NSMutableArray切換到Dictionary時遇到了問題/陣列。由於我抓住了「key」的值,我認爲它會返回與它在Obj-C中指向的相同的數組,但這不是這種情況。我寫了一個複製錯誤的小例子。一個正確的方向提示將不勝感激。在此先感謝Swift Dictionary爲相同的鍵返回不同的對象

var test:[ [String:[String]] ] 

init() { 

test = [ [String:[String]] ]() 

var first:[String] = _arrayForKey("key") 
first.append("first") 

var second:[String] = _arrayForKey("key") 
second.append("second") 

var third:[String] = _arrayForKey("key") 
third.append("third") 

var fourth:[String] = _arrayForKey("key") 
fourth.append("fourth") 

println(work) 
} 

private func _arrayForKey(key:String) -> [String] { 

for dict in test { 
    if dict.keys.first! == key { 
     return dict[key]! 
    } 
} 

test.append([key:[String]()]) 
var dict:[String:[String]] = test.last! 

println("MAKING A NEW DICTIONARY \(test)") 
return dict[key]! 
} 

當跑了註銷[「第四」],我要找的是[「第一」,「第二」,「第三」,「第四」]

回答

0

這是不是一個錯誤。

不同於在Objective-C,其中的NSArray和NSDictionary的是參考的類型,數組和字典中夫特是值類型,例如

var array1 = [1, 2, 3] 
var array2 = array1 // array is copied 
array1[2] = 4 
println(array1) // -> [1, 2, 4] 
println(array2) // -> [1, 2, 3] 
相關問題