我创建了一个像
这样的词典var tempArray1 = ["sdds","dsads"]
var tempArray2: AnyObject = ["sddsa",34,tempArray1]
var dictionary: [String:Array] = ["key1":["value1"],"key2":["value2",6,tempArray2]]
当我尝试打印字典中的所有值时,应用程序崩溃了,如
let allValues = [Array](dictionary.values)
for value in allValues{
println(value)
}
我刚开始用快速语言学习字典概念。我想知道我的做法是对还是错。 请帮我解决一下
答案 0 :(得分:2)
由于Swift数组已关联,我不认为您可以使用数组声明类型而不指定其关联类型。我不确定为什么你没有得到编译时错误。这应该有效:
var tempArray1 = ["sdds","dsads"]
var tempArray2: AnyObject = ["sddsa",34,tempArray1]
var dictionary: [String:Array<AnyObject>] = ["key1":["value1"],"key2":["value2",6,tempArray2]]
let allValues = [Array<AnyObject>](dictionary.values)
for value in allValues{
println(value)
}
甚至更短:
var tempArray1 = ["sdds","dsads"]
var tempArray2: AnyObject = ["sddsa",34,tempArray1]
var dictionary: [String:[AnyObject]] = ["key1":["value1"],"key2":["value2",6,tempArray2]]
let allValues = dictionary.values
for value in allValues{
println(value)
}
答案 1 :(得分:2)
你也可以尝试这个
var tempArray1 = ["sdds","dsads"]
var tempArray2: AnyObject = ["sddsa",34,tempArray1]
println("Array inside array \(tempArray2)")
var dictionary: [String:Array] = ["key1":["value1"],"key2":["value2",6,tempArray2]]
println(dictionary)
let allValues = Array(dictionary.values)
for value in allValues{
println(value)
}