【问题标题】:Crash while getting value from the dictionary in Swift在 Swift 中从字典中获取值时崩溃
【发布时间】:2015-02-16 02:51:31
【问题描述】:

我已经创建了一个类似的字典

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 语言学习字典概念。我想知道我的方法是对还是错。 请帮我弄清楚

【问题讨论】:

  • 任何错误或异常信息?
  • “致命错误:在展开可选值时意外发现 nil” - 错误消息。
  • 你有 nil 的可选变量,你能显示更多代码吗?
  • 以上是我在viewdidload中写的唯一代码
  • 当我尝试使用密钥时。它工作正常,让 allKeys = [String] (dict.keys) for key in allKeys{ println(dict[key]) } 并且值的计数是 140380082480672

标签: ios swift dictionary nsdictionary nsmutabledictionary


【解决方案1】:

你也可以试试这个

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

【讨论】:

    【解决方案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)
    }
    

    【讨论】:

    • 非常感谢:)。最后,我应该提到它是哪种类型的数组。 (数组
    猜你喜欢
    • 1970-01-01
    • 2022-12-17
    • 2014-11-12
    • 2023-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多