Qual é o objetivo do willSet e didSet no Swift?

Swift tem uma sintaxe de declaração de propriedade muito semelhante à de C #: var foo: Int { get { return getFoo() } set { setFoo(newValue) } } No entanto, também possui willSete didSetações. Eles são chamados antes e depois que o setter é chamado, respectivamente. Qual é o propósito deles,...