クラスにタイマーの変数を追加し、その didSet オブザーバーを使用して古い値を無効にしました
var timer: Timer? {
didSet { oldValue?.invalidate() }
}
deinit {
timer = nil
}
クラスが初期化解除されたときにタイマーを無効にするのにこれで十分だと思いましたが、didSetが呼び出されていないようです。何故ですか?オブザーバーは初期化解除中に機能していませんか?
クラスにタイマーの変数を追加し、その didSet オブザーバーを使用して古い値を無効にしました
var timer: Timer? {
didSet { oldValue?.invalidate() }
}
deinit {
timer = nil
}
クラスが初期化解除されたときにタイマーを無効にするのにこれで十分だと思いましたが、didSetが呼び出されていないようです。何故ですか?オブザーバーは初期化解除中に機能していませんか?