Я в процессе переключения одного из моих проектов из Obj-C в Swift, и у меня возникла проблема при переключении с NSDictionary/NSMutableArray на словарь/массив. Поскольку я хватаю значение за «ключ», я предполагаю, что он вернет тот же массив, на который он указывает, как и в 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]!
}
Когда бежал он выходит из [ «четвёртое»], что я смотрю на это [ «первый», «второй», «третий», «четвёртое»]