
Property Observers tức là theo dõi sự thay đổi của thuộc tính.
var myProperty = 5 { willSet { print("Giá trị mới là \(newValue). Giá trị cũ là \(myProperty)") } didSet { print("Giá trị mới \(myProperty). Giá trị cũ là \(oldValue)") } } myProperty = 6 // prints: Will set to 6, It was previously 5 // prints: Did set to 6. It was previously 5
- willSet được gọi Trước myProperty thay đổi giá trị. Giá trị mới là newValue, giá trị cũ là myProperty.
- didSet được gọi Sau myProperty thay đổi giá trị. Giá trị cũ là oldValue và giá trị mới là myProperty .
var myMoney = 0 { willSet { if ( myMoney < 0 ) { print( "Bạn chỉ có \(newValue) $. Không đủ để thanh toán!" ) } } didSet { if ( myMoney > 0 && myMoney < 100 ) { print( "Bạn có \(myMoney) $. Đủ để thanh toán!" ) } }
- Như ví dụ trên: mình đã dùng newValue trong willSet. Nhờ vậy mà bạn không phải thay đổi UI mỗi lần dữ liệu thay đổi mà chỉ cần thay đổi biến myMoney như trên.