作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道这个问题之前在SO上被问过,我理解其中一些给出的解释和解决方案。事实上,我找到的解决方案是我在搜索 SO 之前所做的。但我仍然遇到错误。我有一本这样设置的字典:
var dictBarData = [String: Any]()
然后我像这样填充它:
let vThisBar = UIView()
//set initial coordinates for view
var barX = 0.0
let barY = Double(vBarChart.frame.size.height - 40.0)
let barW = 60.0
var barH = 10.0
barX = getBarX(barIndex)
vThisBar.frame = CGRect(x:barX, y:barY, width:barW, height:barH)
vThisBar.backgroundColor = UIColor.blue
vBarChart.addSubview(vThisBar);
var dictThisBar = [String: Any]()
dictThisBar["category"] = category
dictThisBar["value"] = value
dictThisBar["view"] = vThisBar
dictBarData[String(barIndex)] = dictThisBar
然后我尝试像这样访问这些词典:
for dictThisBar in dictBarData as Dictionary {
print(dictThisBar["view"] as! UIView)
}
此时我收到了错误(在打印件上)。我正在从 Objective-c 过渡到 Swift(我可能是更喜欢 Objective-C 的少数人 :D),所以我想我错过了一步。
最佳答案
您正在为字典 使用数组 枚举语法,您需要这个
for (key, value) in dictBarData {
print(key, value)
}
或
for (key, value) in dictBarData {
if key == "view" { print(value as! UIView) }
}
或者如果你只想获取一个值,请忘记循环:
print(dictThisBar["view"] as! UIView)
由于 dictBarData
被声明为 [String: Any]
,因此不需要类型转换。
关于swift - Type (key : String, value: Any) 没有下标成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45983124/
我是一名优秀的程序员,十分优秀!