1
私はサンプルクラスなどのようなタイプ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文が実行されないのですか?助けてください、ありがとう。
このような愚かな質問。ありがとう@ EricD。 :D – Dershowitz123
ああ、間違いが起こる。どういたしまして。 :) – Moritz