我声明了 Dictionary<String, Any>
其中有一些字符串、数组和整数作为值。
当我尝试返回基于 String
的值时关键,我无法将其转换到 Array
,
即使 key 标识的值是真实的 Array
.
let lColorValues = lTabBarDictionary[TabBarKey.tabBarColor] as Array;
附: TabBarKey.tabBarColor
是一个字符串
Apple 的 Swift 编程书籍提供了一个示例,其中 Array
它们存储不同类型的对象,并且它们使用 as
向下转换对象,这似乎适用于 Array
但不适用于Dictionary
。
我是不是错过了什么?如何获取此类字典的值?
最佳答案
您必须指定 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
。您应该做同样的事情,当然使用数组保存的正确泛型类型。
在 Playground 上测试了该代码,它打印了预期的数组。
关于ios7 - 从 Dictionary<String, Any> 获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24671518/