我创建了一个数组作为一个懒惰的var:
lazy var info : [[String: AnyObject?]] = {
var dictionary = [[String: AnyObject?]]()
dictionary["Key1"] = ["A", "B", "C"]
dictionary["Key2"] = ["D", "E", "F"]
return dictionary
}()
然后在titleForHeaderInSection中调用它,如下所示:
self.info[section]
但这会导致以下错误:
无法下标类型为'[[String:AnyObject?]]'的值
这应该不起作用吗?
2 回答
你有一个字典,而不是一个数组 . 你的字典确实有每个键的数组,但字典本身不是数组 . 因此,所有键都是字符串(在您的情况下为"Key1"和"Key2"),但您尝试传入一个整数 - "section" . 而不是:
self.info[section]
你应该使用:self.info["Key1"]![section]
在编写代码时,您将创建一个包含字符串键和[String]值的Dictionary .
所以
self.info["Key1"]
会返回["A", "B", "C"]
然后你可以这样做:注意:您需要打开从字典返回的值,因为它可能是Nil