Sagen wir, ich habe zwei Klassen: FirstViewController
und SecondViewController
.Geben Sie eine Instanz einer Klasse ein
self.tabBarController?.viewControllers![0]
kann eine Instanz von einem dieser beiden sein.
Dieses ist kein Problem:
let firstVC = self.tabBarController?.viewControllers![0] as! FirstViewController
Aber dieses gibt Fehler "classOfVC ist kein Typ":
let aVC = self.tabBarController?.viewControllers![0]
let classOfVC = object_getClass(aVC)
let myVC = aVC as! classOfVC
Irgendwelche Vorschläge?
Edit: Ich möchte nicht isKindOfClass verwenden, weil ich versuche zu vermeiden, wenn ... sonst wenn ... und da gibt es mehr als zwei Klassen. Welche Klasse
let aVC = self.tabBarController?.viewControllers![0]
if avc.isKindOfClass(FirstViewController) {
//type of first ViewController
}
else if avc.isKindOfClass(SecondViewController) {
//type of second ViewController
}
Der Meta-Typ 'classOfVC' ist erst zur Laufzeit bekannt, aber der Compiler benötigt einen statischen Typ für' myVC', weshalb das, was Sie versuchen, nicht so viel Sinn macht. Was ist das eigentliche Problem, das Sie versuchen zu lösen? Diese Fragen und Antworten können relevant sein: http://StackOverflow.com/Questions/38792315/Class-Casting-Dynamical-in-Swift – Hamish