Durchstarten mit Swift by Stefan Popp & Ralf Peters

Durchstarten mit Swift by Stefan Popp & Ralf Peters

Autor:Stefan Popp & Ralf Peters
Die sprache: deu
Format: epub
Herausgeber: dpunkt.verlag GmbH
veröffentlicht: 2016-11-15T00:00:00+00:00


Downcasting

Jeder Datentyp einer Klasse kann auch eine Referenz auf eine Instanz einer möglichen Kindklasse sein. Dies können wir gezielt mit dem is -Operator überprüfen. Man kann aber auch direkt probieren, mit dem as! - oder as? -Operator einen Downcast auf das entsprechende Objekt durchzuführen. Dabei sollte man den as! -Operator nur dann nutzen, wenn man sich sicher ist, dass das zu castende Objekt der gewünschten Klasse entspricht. Im Fehlerfall führt dies ansonsten zu einem Laufzeitfehler, der die App abstürzen lässt. Der Downcast mit dem as? -Operator ist wesentlich harmloser, denn er liefert im Erfolgsfall einen Optional vom Typ der gewünschten Klasse. Sollte der Cast nicht erfolgreich sein, erhalten wir nil. In dem folgenden Ausschnitt iterieren wir erneut über jedes Objekt im Star-Trek-Convention-Array und geben Informationen aus, die relevant für die jeweilige Klasse sind.

for mensch in starTrekConvention {

if let schauspieler = mensch as? Schauspieler {

print("Schauspieler: \(schauspieler.name)")

print("hatte die Rolle: \(schauspieler.rolle)")

} else if let nerd = mensch as? Nerd {

print("Dem Nerd \(nerd.name)")

print("gefällt nur ein \(nerd.computer)")

} else {

print("Keine Klasse für \(mensch.name) :(")

}

}

Sollte es sich um eine Instanz der Klasse Schauspieler handeln, geben wir den Namen und die Rolle des Schauspielers aus. Beim Nerd ist es ebenfalls der Name und sein Lieblingscomputer. Kennen wir die Klasse noch nicht, geben wir dies ebenfalls aus. In unserem Beispiel wird aber kein Fall dieser Art auftreten.



Download



Haftungsausschluss:
Diese Site speichert keine Dateien auf ihrem Server. Wir indizieren und verlinken nur                                                  Inhalte von anderen Websites zur Verfügung gestellt. Wenden Sie sich an die Inhaltsanbieter, um etwaige urheberrechtlich geschützte Inhalte zu entfernen, und senden Sie uns eine E-Mail. Wir werden die entsprechenden Links oder Inhalte umgehend entfernen.