¿Cuál es el propósito de willSet y didSet en Swift?

Swift tiene una sintaxis de declaración de propiedad muy similar a la de C #: var foo: Int { get { return getFoo() } set { setFoo(newValue) } } Sin embargo, también tiene willSety didSetacciones. Estos se llaman antes y después de llamar al setter, respectivamente. ¿Cuál es su propósito,...