2015-06-26 69 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] 
相关问题