【发布时间】:2016-07-26 10:52:53
【问题描述】:
我有一个示例类和一个 Int 类型的属性,如下所示:
class StepCounter {
var totalSteps: Int = 0 {
willSet(newTotalSteps) {
print("about to set steps to \(newTotalSteps)")
}
didSet {
if totalSteps > oldValue {
print("Added \(totalSteps - oldValue) steps")
}
}
}
}
现在,当我创建此类的一个实例并为我的 var totalSteps 分配一个数字时,如下所示:
let anObj = StepCounter()
anObj.totalSteps = 2000
我按预期得到了控制台输出:
about to set steps to 2000
Added 2000 seteps
但是当我执行anObj.totalSteps -= 1 时,我只得到willSet 输出说about to set steps to 1999 并且didSet 永远不会被执行。发生了什么以及为什么我没有执行 willSet print 语句?帮帮忙,谢谢。
【问题讨论】:
标签: ios swift properties swift3