无法遍历<string:any =“”>的Dictionary的数组元素

时间:2017-02-08 20:58:03

标签: swift

试图弄清楚为什么会在Xcode 8.1中的for循环中抛出错误(&#34;不能下标类型&#39; inout Dictionary&#39;的值):

var fooDict = Dictionary<String, Any>()
fooDict["test"] = "I'm a string"
fooDict["numberTest"] = "12345"
fooDict["arrayTest"] = [1,3,4,"five"]

for item in (fooDict["arrayTest"] as! Array)
{
print(item)

}

2 个答案:

答案 0 :(得分:3)

这里的错误令人困惑,并指向错误的方向。你不能在Swift中拥有Array。它必须是一系列特定的东西。在这种情况下,你的意思是一个Any的数组,所以你必须这样说:

for item in (fooDict["arrayTest"] as! [Any])

答案 1 :(得分:2)

您必须指明该数组的类型为Any。像这样:

for item in (fooDict["arrayTest"] as! Array<Any>)
{
    print(item)
}