If statement 迅捷-为什么可以';在if语句中使用警报
我目前正在浏览#100daysofswiftUI,并就if语句中警报的使用提出了一个快速问题。这个特殊的任务在第二个项目的末尾 代码如下:If statement 迅捷-为什么可以';在if语句中使用警报,if-statement,swiftui,alert,If Statement,Swiftui,Alert,我目前正在浏览#100daysofswiftUI,并就if语句中警报的使用提出了一个快速问题。这个特殊的任务在第二个项目的末尾 代码如下: .alert(isPresented: $showingScore) { if x == 1 { Alert(title: Text(scoreTitle), message: Text("The correct answer was \(countries[correctAnswer])"), dismissBu
.alert(isPresented: $showingScore) {
if x == 1 {
Alert(title: Text(scoreTitle), message: Text("The correct answer was \(countries[correctAnswer])"), dismissButton: .default(Text("Restart")) {
self.askQuestion()
})
}
}
我觉得这个代码应该可以工作,但是我在警戒线上有一个黄色警报,上面写着:
“警报”初始值设定项的结果未使用
我不知道这意味着什么,如何解决这个问题?您需要在
.Alert
修饰符中返回警报,而不是if语句
为此,您可以创建一个返回警报的计算属性:
var alert: Alert {
if x == 1 {
return Alert(
title: Text(scoreTitle),
message: Text("The correct answer was \(countries[correctAnswer])"),
dismissButton: .default(Text("Restart")) {
self.askQuestion()
}
)
} else {
return Alert(...) // return some other `Alert`
}
}
并在.alert
修改器中使用它:
.alert(isPresented: $showingScore) {
alert
}
只需确保仅在希望显示警报时启用showingScore
。如果showingScore
条件为,
做这样的事
if x == 1 {
showingScore = true
}
.alert(isPresented: $showingScore) {
Alert(title: Text(scoreTitle), message: Text("The correct answer was \(countries[correctAnswer])"), dismissButton: .default(Text("Restart")) {
self.askQuestion()
})
}
您的警报将如下所示
if x == 1 {
showingScore = true
}
.alert(isPresented: $showingScore) {
Alert(title: Text(scoreTitle), message: Text("The correct answer was \(countries[correctAnswer])"), dismissButton: .default(Text("Restart")) {
self.askQuestion()
})
}