Por que 'didset' é chamado em uma propriedade quando eu defino a propriedade dessa propriedade?

Nesse código, quando o texto muda,titleEditingChanged é chamado (conforme o esperado). Mas quando ele executa a linha

investment?.title = sender.text!

chama odidset{} doInvestment. 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!
}

questionAnswers(2)

yourAnswerToTheQuestion