如何在Swift中取回Any的原始值?

时间:2014-09-17 18:20:38

标签: swift

我遇到了一个严重的问题。据我所知,这是可以理解的。

    let a1:Int?     =   11223344
    let a2:Any      =   a1
    let a3:Int?     =   a2 as? Int

    println(a3)

    // result: nil

为什么Any会发生这种情况?如何从Any获取原始值?

我正在使用Xcode 6.0.1。

1 个答案:

答案 0 :(得分:3)

您声明a1Optional,类型为enum,然后将可选(枚举)值指定给a2。请注意,枚举不是Int,因此您尝试使用a2Int动态投射到as?失败。因此,a3设置为nil

要解决此问题,您可以显式解包可选值,如下所示:

    let a2:Any =  a1!