2017-02-08 59 views
0

試圖找出爲什麼這在引發錯誤(「不能下標類型的值‘INOUT詞典’),用於以下循環在Xcode 8.1:不能遍歷字典的數組元素的<String: Any>

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

在哪一行發生這種情況? –

+0

相關:[無法從Dictionary值轉換爲Array](http://stackoverflow.com/q/39799149/2976878) – Hamish

回答

2

你必須表明該陣列是任何類型的像這樣:。

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

這裏的錯誤是混亂和指點你在錯誤的方向,您不能在斯威夫特剛剛Array它必須是一組特定的東西,在這種情況下,你的意思是一個數組Any,所以你必須這樣說:

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