Setter для хранимого свойства


#1

Можно ли добавить setter к хранимому проперти?
К примеру у нас есть переменная ’ i '
var i = 1
Можно ли сделать так, чтобы каждый раз, когда эта переменная меняла значение, в консоли что-нибудь печаталось, например: “Переменная i была изменена”?
Может это можно сделать не через расширение, а через какое-нибудь соответствие протоколу, через вычисляемые свойства и т.д. Будьте добры, напишите все возможные варианты. Заранее спасибо))


#2
var someVariable: Int! {
    didSet {
        print("old value: \(oldValue), new value \(someVariable)")
    }
}