启用Any.Type

时间:2016-03-25 21:46:51

标签: swift

我试图在swift中打开一个类型。我没有尝试打开对象实例的类型,我试图打开实际类型本身。例如:

 let t: Any.Type = Int.self
 switch t {
 case is Int:
     print("int")
 default:
     print("other")
 }

我希望这可以打印" int"但它属于默认情况。

我可以使用if语句完成所需的结果,如

 if t == Int.self
 {
     print("t is an int")
 }

但是我希望通过一个开关来实现这个目的。我读过Apple' Type Casting'文档,也许还不够彻底,因为我无法在这里找到应用它的方法。

1 个答案:

答案 0 :(得分:8)

Xcode在上述情况下会产生以下警告:"来自' Any.Type'与无关的Type' Int'总是失败"这提示了正确的方法:

 let t: Any.Type = Int.self
 switch t {
 case is Int.Type:
     print("Int")
 default:
     print("Other")
 }