我遇到了一个严重的问题。据我所知,这是可以理解的。
let a1:Int? = 11223344
let a2:Any = a1
let a3:Int? = a2 as? Int
println(a3)
// result: nil
为什么Any
会发生这种情况?如何从Any
获取原始值?
我正在使用Xcode 6.0.1。
答案 0 :(得分:3)
您声明a1
为Optional
,类型为enum
,然后将可选(枚举)值指定给a2
。请注意,枚举不是Int
,因此您尝试使用a2
将Int
动态投射到as?
失败。因此,a3
设置为nil
。
要解决此问题,您可以显式解包可选值,如下所示:
let a2:Any = a1!