Wie bestimmt man den Typ eines Objekts in Swift? (type(of:) und is/as)
Hallo zusammen! Ich habe gerade angefangen, Swift zu lernen, und schreibe meine erste App. Ich bin auf ein Problem gestoßen: Ich muss herausfinden, welchen Typ ein Objekt in einer Variable hat, besonders wenn ich Protokolle oder Vererbung verwende.
Hier ist ein Beispiel. Ich habe eine Basisklasse `Animal` und zwei Unterklassen: `Dog` und `Cat`. Ich erstelle ein Array `let animals: [Animal] = [Dog(), Cat(), Dog()]` und möchte in einer for-in-Schleife bestimmen, wer ein Hund und wer eine Katze ist. In anderen Sprachen (z. B. in C#) habe ich `typeof()` oder `is` für die Überprüfung verwendet. Wie macht man das in Swift?
Ich habe versucht, `if animal is Dog { ... }` zu schreiben, aber das funktioniert nur für die Überprüfung. Wie bekomme ich den Typnamen als String? Außerdem habe ich von `type(of:)` gehört, verstehe aber nicht den Unterschied zwischen `type(of:)` und `is`/`as`. Ich muss nicht nur überprüfen, sondern manchmal auch den Typ umwandeln.
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen