繁体   English   中英

在Swift中从字典中获取价值时崩溃

[英]Crash while getting value from the dictionary in Swift

我已经创建了一个字典

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)
}

我刚刚开始用快速的语言学习字典概念。 我想知道我的方法是对还是错。 请帮我弄清楚

由于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)
}

您也可以尝试

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)
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM