Downcast to Array并在一行上获得价值

时间:2014-06-14 04:45:49

标签: swift

假设值类型为Dictionary的混合Any,将数组作为其中一个值:

let myArray = ["A", "B", "C"]

var myDictionary:Dictionary<String, Any> = [
    "Array":myArray,
    "String":"A String"
]

获取String "B"

var downcastToArray:String[] = myDictionary["Array"] as String[]

downcastToArray[1] // Got the "B". Great

这可以在不首先分配var的情况下完成吗?

myDictionary["Array"] as String[] // I got the String[], now what?

myDictionary["Array"] as String[] [1] // Any way to get the [1] value ?

myDictionary["Array"]?[1] // Nop

myDictionary["Array"]![1] // Na..

myDictionary["Array"]![1] as String // No go..

让我来到这里,只提一下我有超过20行类似的头脑风暴&#39;。或者我应该以不同的方式对待dictionary Any? (任何?任何!.. arrrr ..任何*%#$!^)?

1 个答案:

答案 0 :(得分:1)

如果你真的想要它在一行:

(myDictionary["Array"] as [String])[1]

但是,请确保您对正确的类型非常有信心,因为它会抛出运行时错误,如果不是,则会暂停整个程序。