¿Por qué se llama 'didset' a una propiedad cuando configuro la propiedad de esa propiedad?

En este código cuando el texto cambia,titleEditingChanged se llama (como se esperaba). Pero cuando ejecuta la línea

investment?.title = sender.text!

llama aldidset{} deInvestment. ¿Por qué?

class InvestmentCell: UITableViewCell {

    var investment: Investment? {
        didSet {
            // setup UI elements from class properties
            textField.text = investment?.title
            valueField.text = investment?.value?.description
        }
    }

    @IBAction func titleEditingChanged(sender: UITextField) {
        investment?.title = sender.text!
    }

    @IBOutlet weak var textField: UITextField!
    @IBOutlet weak var valueField: UITextField!
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta