我声明了一个Dictionary<String, Any>
,它有一些字符串,数组和整数作为值。
当我尝试根据String
键获取值时,我无法将其转换为Array
,
即使由key标识的值是真实的Array
。
let lColorValues = lTabBarDictionary[TabBarKey.tabBarColor] as Array;
P.S。 TabBarKey.tabBarColor
是一个字符串
Apple的Swift编程手册提供了一个Array
存储不同类型对象的示例,他们使用as
来预测对象,这似乎适用于{{1}但不适用于Array
。
我错过了什么吗?如何获得这样的词典的值?
答案 0 :(得分:3)
您必须指定Array
所拥有的类型,例如:
class TabBarKey {
class var tabBarColor : String {
return "key"
}
}
let arr = ["1", "2", "3"]
var lTabBarDictionary = Dictionary<String, Any>()
lTabBarDictionary[TabBarKey.tabBarColor] = arr
let val = lTabBarDictionary[TabBarKey.tabBarColor] as Array<String>
在最后一行,我使用的是Array<String>
而不是Array
。你应该做同样的事情,当然使用数组所包含的正确泛型类型。
在操场上测试该代码并打印出预期的数组。