0

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")
        }
    }
}
4

1 に答える 1