我无法访问字典中的数组。
var fastWay: Dictionary<String, Any> = [:]
let roadMap = [
"home": ["hair": 5, "super": 10, "academy": 9],
"hair": ["home": 5, "super": 3, "bank": 11],
"superMarket":["hairShop":3, "home":10, "englishAcademy":7, "restaurant":3],
"englishAcademy": ["home":9, "superMarket":7, "school":12],
"restaurant" : ["superMarket":3, "bank":4],
"bank" : ["hairShop":11, "restaurant":4, "englishAcademy":7, "school":2],
"school" : ["bank":2, "englishAcademy":12]]
print (roadMap["home"]?["academy"])
var fastWay: Dictionary<String, Any> = [:]
for i in roadMap.keys{
fastWay.updateValue([false, 9999, "start"], forKey: i)}
print (fastWay)
print (fastWay["superMarket"][0])
各种声明类型已经过测试。
例如:
cutcopymode = 1
Xcode Playground评论: 可选类型“任何吗?”的值必须解包以引用基本类型为“ Any”的成员“下标”
答案 0 :(得分:0)
由于字典中的值是Any类型,因此您无法访问下标,因为编译器无法知道此值类型是否可以处理它。
您只需要将值类型转换为对象数组即可访问它们:
var fastWay: Dictionary<String, Any> = [:]
for i in roadMap.keys{
fastWay.updateValue([false, 9999, "start"], forKey: i)
}
print (fastWay)
if let parsed = fastWay["superMarket"] as? [Any] {
//access any value you want
print(parsed[0])
}