我试图在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'文档,也许还不够彻底,因为我无法在这里找到应用它的方法。
答案 0 :(得分:8)
Xcode在上述情况下会产生以下警告:"来自' Any.Type'与无关的Type' Int'总是失败"这提示了正确的方法:
let t: Any.Type = Int.self
switch t {
case is Int.Type:
print("Int")
default:
print("Other")
}