2016-03-25 13 views
1

Ich versuche, einen Typ swift einzuschalten. Ich versuche nicht, den Typ einer Objektinstanz einzuschalten, ich versuche den eigentlichen Typ selbst einzuschalten. Zum Beispiel:Schalten Any.Type

Ich würde erwarten, dass dies "int" drucken, aber es fällt in den Standardfall.

kann ich das gewünschte Ergebnis mit einer if-Anweisung, wie in,

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

erreichen, aber ich war für einen Weg der Hoffnung, diese mit einem Schalter zu tun. Ich habe Apples "Type Casting" -Dokumentation gelesen, vielleicht nicht gründlich genug, weil ich keine Möglichkeit sehe, es hier anzuwenden.

Antwort

3

Xcode generiert die folgende Warnung auf dem obigen Fall: „Cast von‚Any.Type‘an unabhängigem Typen‚Int‘nicht immer“, die auf die richtige Art und Weise Hinweise:

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