Mit einer Variablen vom Typ AnyClass, ist es möglich zu wissen, ob dieser Typ eine Erweiterung oder Implementierung eines anderen Typs ist?Prüfen, ob eine AnyClass-Variable eine Erweiterung oder Implementierung einer Klasse ist
Zum Beispiel:
var aClass: AnyClass = UIButton.self
// assuming a fictional operator "isOfType"
// Both UIButton and UILabel are subclasses of UIView
aClass isOfType UIButton // true
aClass isOfType UIView // true
aClass isOfType UILabel // false
Eine Möglichkeit, dies ist eine Instanz zu tun, aber eine solche Instanz erstellen kann nicht immer wünschenswert sein:
var aClass: AnyClass = UIButton.self
let buttonClass = aClass as? UIButton.Type
var aButton: AnyObject = buttonClass!()
aButton is UIButton // true
aButton is UIView // true
aButton is UILabel // false
Gibt es andere Mittel zu prüfen, ob ein AnyClass enthält einen Typ, der einen anderen Typ erweitert?
Ordentlich, das ist definitiv hilfreich. Dennoch frage ich mich, ob es eine Möglichkeit gibt, dies ohne die NSObject-Methoden zu tun oder direkt die Syntax des schnellen Typs zu verwenden. – LopSae
@LopSae Scheint, dass "isSubclassOfClass" auch für reine Swift-Klassen funktioniert (siehe mein Update). – hennes
@LopSae Ich denke, 'is' zusammen mit der' Type' -Eigenschaft ist wahrscheinlich der * swifty * Weg, dies zu tun (siehe mein zweites Update). – hennes