我有一个非常简单的例子,说明我想做什么
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;
请让我知道我做错了什么。
答案 0 :(得分:12)
您的常量array
是可选的。订阅字典总是返回一个可选项。你必须打开它。
let dict = array![0]
更好的是,
if let a = array {
let dict = a[0]
}
答案 1 :(得分:3)
它不喜欢在可选项上调用下标。
如果你确定数据[“Blah”]存在,你应该这样做:
let dict = array![0]