Swift - 使用字典数组从字典访问数据时出错

时间:2015-02-26 18:41:36

标签: ios swift

我有一个非常简单的例子,说明我想做什么

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]字典数组。我把数据填入其中但是当我去访问数据时,我收到了这个错误:

  

不能下标类型&#39; [([String:String])]的值?&#39;与   类型索引&#39; Int&#39;

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

2 个答案:

答案 0 :(得分:12)

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

let dict = array![0]

更好的是,

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

答案 1 :(得分:3)

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

如果你确定数据[“Blah”]存在,你应该这样做:

let dict = array![0]