试图弄清楚为什么会在Xcode 8.1中的for循环中抛出错误("不能下标类型' inout Dictionary'的值):
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)
}
答案 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)
}