作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我声明了一个 Dictionary<String, Any>
它有一些字符串、数组和整数作为值。当我尝试取回基于 String
的值时 key ,我无法将其转换为 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/
我是一名优秀的程序员,十分优秀!