【问题标题】:Swift - Error Accessing Data From Dictionary with Array of DictionariesSwift - 使用字典数组从字典访问数据时出错
【发布时间】:2015-04-29 06:59:40
【问题描述】:

我有一个非常简单的例子来说明我想做的事情

private var data = [String: [[String: String]]]()

override func viewDidLoad() {
    super.viewDidLoad()
    let dict = ["Key": "Value"]
    data["Blah"] = [dict, dict]
}

@IBAction func buttonTap(sender: AnyObject) {
    let array = data["Blah"]
    let dict = array[0] //<---- error here
    println(dict["Key"])
}

基本上,我有一个字典,其值包含 [String: String] 字典数组。我将数据填充到其中,但是当我访问数据时,出现此错误:

不能下标 '[([String : String])] 类型的值?与 'Int' 类型的索引

请让我知道我做错了什么。

【问题讨论】:

  • data["Blah"] 返回一个 optional 并且必须解包。 – 这个问题一定已经回答过了……
  • 是的,抱歉,我一看就明白了。我认为这是快速处理嵌套对象的问题,所以我的搜索结果是空的。谢谢!
  • 我试图以重复的形式关闭,但如果您搜索此特定错误消息,似乎没有任何参考。我会保持原样,以防它可以帮助忽略明显“?”的人。像我一样。

标签: ios swift


【解决方案1】:

您的常量array 是可选的。下标字典总是返回一个可选的。你必须打开它。

let dict = array![0]

更好,

if let a = array {
   let dict = a[0]
}

【讨论】:

    【解决方案2】:

    它不喜欢在可选项上调用下标。

    如果你确定 data["Blah"] 存在,你应该这样做:

    let dict = array![0] 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-26
      • 2022-06-10
      • 1970-01-01
      • 2017-11-14
      • 1970-01-01
      • 2021-05-04
      相关资源
      最近更新 更多