Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Swift lernen

Reagieren, wenn sich eine Variable ändert

Testen Sie unsere 2016 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Wer hat wann welchen Wert wie geändert? Solche und andere Fragen lassen sich mit Beobachtern einfach realisieren.
05:58

Transkript

Es kann sehr sinnvoll sein, darüber informiert zu werden, wenn sich ein bestimmtes Property einer Klasse ändert. Das Schlüsselwort dazu heißt eben beobachter, PropertyObserver, und auch das ist schon fest in Swift eingebaut, und unheimlich attraktiv, das schauen wir uns in diesem Video an. Wir starten mit einem neuen Playground, und wir haben hier unsere PropertyObserver, und legen das einfach ab, in unserem Workspace, und dann sind wir ja schon im Geschäft. Also, PropertyObserver, was soll das Ganze? Wir haben eine Klasse Kunde, und ein Kunde, der hat zum Beispiel einen Namen, das ist jetzt ein String, und ein Kunde hat auch eine Rabattstaffel, die diesem Kunden zugewiesen wird, und das kann ja sein, einen Double, den wir hier vergeben. Dann verwenden wir im Moment einmal keinedefault-Werte hier für unsere Properties, das heißt, wir müssen ja zwingend einen Initialisierer schreiben, und dann haben wir einen Initialisierer, der bekommt einen Namen als String, und eine Rabattstaffel auch als Double übergeben, und wir können dann einfach sagen, self.name = name, und self.rabattstaffel ist eben diese übergebene Rabattstaffel damit können wir so einen Kunden ja konstruieren. das heißt, hier Variable einKunde = Kunde, und das ist dann unser Willi Testkunde, und er hat eine Rabattstaffel hier im Moment von Null. So - oder machen wir das Ganze ruhig als Integer, das reicht ja völlig aus, muss ja nicht alles so kompliziert sein, also, wir haben so einen Kunden, jetzt ist es natürlich spannend, dass wir darüber informiert werden, wenn quasi diese Rabattstaffel sich ändert. Ja, dann wollen wir zum Beispiel das in eine Datei schreiben, oder in eine Datenbank, und wollen dann sagen, der User, der gerade angemeldet ist, hat zu diesem Datum und zu der Uhrzeit von der und der IP-Adresse die Rabattstaffel des Kunden Willi Testkunde von, was weiß ich, Null auf Fünf geändert, und man wundert sich nämlich, warum Willi Testkunde dann alles so günstig kaufen kann. Und so eine Information wollen wir beispielsweise über Property Observer abgreifen, das heißt, wir können dann hier hergehen, und sagen, dass wir zu unserer Rabattstaffel so etwas machen, wie willSet, wenn also der Wert gesetzt werden soll, dann möchten wir hier etwas angeben, und zwar: println("Staffel geändert auf"), println("Staffel geändert auf"), jetzt ist den die Frage, was ist denn der neue Wert, na ja, wir können es uns fast schon denken, das bekommen wir unter der impliziten Variablen newValue zur Verfügung gestellt. Und wir haben also willSet, was aufgerufen wird, wenn sich der Wert ändern soll, ja, also, "Staffel - ", dann müssten wir hier auch schreiben, " - soll geändert werden auf", und wenn die Sache dann passiert ist, dann können wir noch den didSet implementieren, und können dann hier in unserem einfachen Beispiel einmal ausgeben, tatsächlich "Staffel geändert von", und auch hier haben wir einen alten Wert zur Verfügung, (lacht), tatsächlich unter dem Namen oldValue, und dann können wir doch hier auch nochmal den newValue ausgeben. So, das, ach so: newValue dann nicht mehr, sondern natürlich Rabattstaffel, das ist ja dann der neue Wert. So, und jetzt sehen wir, wenn wir später hergehen, und sagen, einKunde.rabattstaffel = 5, und wenn wir uns dann dazu hier unser Lock quasi anschauen, in unserem Playground, dann sehen wir ganz genau, aha, Staffelpreis soll geändert werden auf 5, und das war der willSet, und nachdem der didSet gelaufen ist, Staffel geändert von 0 auf 5, und wir hätten jetzt beispielsweise noch zusätzliche Informationen dabei, wir würden das hier nicht mit println machen, sondern wirklich in einer Datenbank verewigen, dass wir dann quasi audit proof sind, wenn jemand unsere Software dann prüft, eine Finanzbuchhaltung, dass wirklich auch sichergestellt ist, ja ja, jede Änderung an diesem Datensatz wird protokolliert, so dass hier nicht im Nachhinein irgendetwas gefakt werden kann. Also, Property Observer, superschicke Sache, gleich eingebaut in Swift, und wem dann hier newValue nicht gefällt, der kann dann hier auch gerne den Namen ändern, neueStaffel und man darf dann auch diesen Namen hier an dieser Stelle verwenden, das gleiche natürlich mit oldValue beim didSet auch, ja, und das ist schon das ganze Geheimnis, was sich hinter diesem tollen Begriff Property Observer für Variablen in Swift verbirgt, ich finde es natürlich mal wieder genial.

Swift lernen

Erkunden Sie die wichtigsten Sprachmerkmale von Swift und ihre modernen Eigenschaften wie Generics, Extensions, Tupels und Optionals.

4 Std. 2 min (30 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!