这是 AnyHashable 不支持使用枚举进行强制转换的简单案例示例。
enum testEnum: String {
case Test
}
let myObject: AnyHashable = testEnum.Test as AnyHashable
let newObject = myObject as? testEnum
在这种情况下,newObject 将返回 nil。如果我改为投
let newObject = (myObject as? AnyObject) as? testEnum
它会很好。
我已经用结构、自定义类和字符串尝试过这个,它们都正确转换。例如这有效。
let myObject: AnyHashable = "Test" as AnyHashable
let newObject = myObject as? String
这是swift中的错误还是我在这里没有正确执行此操作。
我在 Swift 3.2 和 Swift 4 中试过这个。