このコードが初期化時に didSet をトリガーする理由
final public class TestDidSet {
static var _shared: TestDidSet! = TestDidSet()
func testA() { }
private var test = true {
didSet {
print("didSet test when initing!!!!!:\(test)")
}
}
private var _value: Bool! {
didSet {
print("didSet when initing!!!!!:\(_value)")
}
}
private init() {
testSet()
_value = false
test = false
}
private func testSet() {
_value = true
}
}
TestDidSet._shared.testA()
何か案が?didSetをトリガーすべきではありませんか?誰か助けて!
更新:私の視点はこれで
testSet()
、_value = false
同じことをしていますtestSet()
が、外部init()
にあるため、testSet()
トリガーさdidSet
れ_value = false
ません。どうして?!
「didSet」を引き起こすのは、オプションのタイプやその他の理由ではないと思います。