gpt4 book ai didi

ios - SwiftUI 显示基于计算属性的警报

转载 作者:行者123 更新时间:2023-11-28 13:24:47 27 4
gpt4 key购买 nike

我正在尝试根据计算属性在 Swift 中显示警报。基本上,只要用户点击按钮,“round”的值就会更新。当发生超过 10 轮时,会显示警报。

为此,我创建了一个名为“showingAlert”的 bool 变量。这必须是一个 @State 变量,以便在用户关闭警报时再次将其设置为 false。

但是,编译器告诉我像@State 这样的属性包装器“不能应用于计算属性”:-(

这是我试过的代码:


@State var round = 0
@State var showingAlert:Bool {round > 10 ? true : false}

func result(player: Int, app: Int) {
if player > app {
round += 1
}
else {
round += 1
}
}

var body: some View {
Button(action: {self.result(player: 1, app: 1)}) {
Text("Button")
}
.alert(isPresented: $showingAlert) {
Alert(title: Text("title"), message: Text("message"), dismissButton: .default(Text("Continue"))
)
}

有什么办法解决这个问题吗?我很想创建一个不显示错误消息的警报。

最佳答案

您可以简单地使用 Binding.constant(_:) .将计算属性转换为绑定(bind)属性。


@State var round = 0
var showingAlert:Bool {round > 10 ? true : false}

func result(player: Int, app: Int) {
if player > app {
round += 1
}
else {
round += 1
}
}

var body: some View {
Button(action: {self.result(player: 1, app: 1)}) {
Text("Button")
}
.alert(isPresented: .constant(showingAlert)) {
Alert(title: Text("title"), message: Text("message"), dismissButton: .default(Text("Continue"))
)
}

关于ios - SwiftUI 显示基于计算属性的警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58578854/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com