0Pricing
Swift Academy · Lektion

Gespeicherte Eigenschaften und Eigenschaftsbeobachter

Eigenschaftsbeobachter mit didSet und willSet zum Reagieren auf Änderungen an Eigenschaften.

Gespeicherte Eigenschaften und Eigenschaftsbeobachter ist eine kostenlose Swift Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Swift Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.

Willkommen

Gespeicherte Properties enthalten Werte innerhalb eines Structs oder einer Klasse. Property-Observer — `willSet` und `didSet` — ermöglichen es Ihnen, auf Änderungen des Werts einer gespeicherten Property zu reagieren.

Gespeicherte Properties

```swift struct Counter { var count: Int = 0 // stored, mutable let name: String // stored, immutable } ``` Jeder Wert, den Sie innerhalb eines Typs mit `let` oder `var` zuweisen, ist eine gespeicherte Property.

didSet-Observer

```swift struct Gauge { var level: Int = 0 { didSet { print("Changed from \(oldValue) to \(level)") } } } var g = Gauge() g.level = 5 // "Changed from 0 to 5" ``` `oldValue` ist der automatisch bereitgestellte vorherige Wert.

willSet-Observer

```swift struct Slider { var value: Double = 0.5 { willSet { print("About to change to \(newValue)") } } } ``` `newValue` ist der automatisch bereitgestellte eingehende Wert. `willSet` wird vor der Zuweisung ausgelöst.

Beide Observer zusammen

```swift var temperature: Double = 20 { willSet { print("Will become \(newValue)") } didSet { print("Was \(oldValue)") } } temperature = 25 // Will become 25.0 // Was 20.0 ```

Werte mit didSet begrenzen

```swift var volume: Int = 50 { didSet { if volume > 100 { volume = 100 } if volume < 0 { volume = 0 } } } volume = 150 // clamped to 100 ``` Ein sauberes Muster, um Invarianten automatisch durchzusetzen.

Observer bei Unterklassen

Property-Observer funktionieren auch bei geerbten Properties: ```swift class Base { var x: Int = 0 } class Child: Base { override var x: Int { didSet { print("x changed to \(x)") } } } ```

Observer werden bei der Initialisierung nicht ausgelöst

```swift struct Model { var value: Int = 0 { didSet { print("changed") } } init(v: Int) { self.value = v } // does NOT trigger didSet } ``` Observer werden während der anfänglichen Zuweisung in `init` nicht ausgelöst.

Gespeichert vs. berechnet — schneller Unterschied

• Gespeichert: `var x: Int = 0` — belegt tatsächlichen Speicher • Berechnet: `var doubled: Int { x * 2 }` — wird beim Zugriff abgeleitet und belegt keinen Speicher • Observer: an eine gespeicherte Property angehängt — reagiert auf Änderungen Observer können nicht zu berechneten Properties hinzugefügt werden (diese verfügen bereits über `get`/`set`).

Hinweis zur Performance

Property-Observer verursachen bei jedem Schreibvorgang den Overhead eines Funktionsaufrufs. Bei Schreibvorgängen mit hoher Frequenz (z. B. in der Physik einer Spielschleife) sollten Sie stattdessen eine einfache gespeicherte Property verwenden und die Aktualisierungslogik für bessere Performance explizit aufrufen.

Schnelltest

Welcher Property-Observer ermöglicht den Zugriff auf den **vorherigen** Wert?

Zusammenfassung

Die wichtigsten Punkte: • Gespeicherte Properties enthalten Werte direkt • `willSet` wird ausgelöst, bevor der neue Wert gespeichert wird; `newValue` wird bereitgestellt • `didSet` wird danach ausgelöst; `oldValue` wird bereitgestellt • Observer werden während `init` nicht ausgelöst • Ideal für Seiteneffekte wie UI-Aktualisierungen, Protokollierung und Validierung Als Nächstes: berechnete Properties.

Häufig gestellte Fragen

Ist die Lektion „Gespeicherte Eigenschaften und Eigenschaftsbeobachter“ kostenlos?

Ja — der vollständige Text von „Gespeicherte Eigenschaften und Eigenschaftsbeobachter“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Swift Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Gespeicherte Eigenschaften und Eigenschaftsbeobachter“?

Eigenschaftsbeobachter mit didSet und willSet zum Reagieren auf Änderungen an Eigenschaften. Du übst Swift Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Swift Academy zu starten?

Keine Vorkenntnisse erforderlich. Swift Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „Gespeicherte Eigenschaften und Eigenschaftsbeobachter“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Swift Academy-Lektion Code schreiben und ausführen?

Ja. Jede Swift Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Memberwise-Initialisierer und benutzerdefinierte Initialisierer
  2. Gespeicherte Eigenschaften und Eigenschaftsbeobachter
  3. Berechnete Eigenschaften in Structs
  4. Mutierende Methoden und Copy-on-Write-Semantik
← Zurück zu Swift Academy