Xcode を 11.3 から 11.4 に更新したところ、SwiftUI で記述されたプロジェクトの動作が異なりました。toggle()
以前はブール値の関数を呼び出してdidSet
いて、プロパティ オブザーバーをトリガーしていましたが、機能しなくなりました。
というState
プロパティがあるとしisSettingOn
ます。私はこれを次のように呼んでいました:
isSettingOn.toggle()
didSet
プロパティのオブザーバーをトリガーしていました。今、私がこれを呼び出す場合にのみ:
isSettingOn = true
それは働いています。
私のプロジェクトはすべてこの動作に基づいていますが、この変更により基本的にすべてが壊れました。私が実際にここで何か間違ったことをしているかどうかは誰にも分かりますか?
編集:
デモコードが追加されました:
struct ContentView: View {
@State var isSettingOn: Bool = true {
didSet {
print("didSet isSettingOn")
}
}
var body: some View {
Button(action: {
self.isSettingOn = true // will trigger didSet
self.isSettingOn.toggle() // won't trigger didSet
}) {
Text("Toggle isSettingOn")
}
}
}