Avatar ·

Wozu braucht man willSet und didSet in Swift? Eigenschaftsbeobachter

Hallo zusammen! Ich habe vor kurzem angefangen, Swift zu lernen, und bin auf so etwas wie `willSet` und `didSet` gestoßen. Ich verstehe zwar irgendwie, dass es mit der Änderung von Eigenschaften zu tun hat, aber ich kann nicht ganz erfassen, wozu sie überhaupt gut sind.\n\nZum Beispiel habe ich eine einfache App, in der ich möchte, dass sich beim Ändern des Werts der Variable `score` mein Label auf dem Bildschirm aktualisiert. Aktuell mache ich das so:\n\n```swift\nvar score = 0 {\n willSet {\n print("Bald kommt ein neuer Wert: \\(newValue)")\n }\n didSet {\n print("Der alte Wert war: \\(oldValue)")\n scoreLabel.text = "Punkte: \\(score)"\n }\n}\n```\n\nIch sehe, dass der Code funktioniert, aber ich verstehe nicht, was der Unterschied zu einer einfachen Methode wie `updateScore(newValue: Int)` ist, die ich manuell aufrufe. Wo liegt der Vorteil? Wann sollte man `willSet` und `didSet` wirklich verwenden?