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
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.
maca by silk(822)
Der geheime Plan Ihres Lebens by Ruediger Schache(821)
OS X Mountain Lion Das Praxisbuch by Antoni Nadir Cherif(803)
OS X Mavericks by Raffael Vieser(797)
Mein Business, mein Büro, mein Mac by Stephan Lamprecht(786)
OS X Mavericks Das Praxisbuch by Antoni Nadir Cherif(783)
Objective-C und Cocoa by Amin Negm-Awad(766)
100 Fragen zum Mac by Mario Weber Ulf Cronenberg & Günter Kraus(728)
OS X Mountain Lion by Gabi Brede & Raffael Vieser(722)
Durchstarten mit Swift by Stefan Popp & Ralf Peters(716)
iPhone 6 und iPhone 6 Plus by Heiko Bichel(710)