这是因为SwiftUI的可选类型始终被视为未解包的。如果Alert作为可选类型传递给SwiftUI视图,则需要将其手动解包。以下是示例代码:
var showAlert: Bool = true
var alert: Alert { Alert(title: Text("Title"), message: Text("Message"), dismissButton: .default(Text("OK"))) }
var body: some View { VStack { Button(action: { showAlert = true }) { Text("Show Alert") } } .alert(isPresented: $showAlert) { alert } }
在上述代码中,我们创建了一个名为alert的函数,该函数返回Alert视图。我们还声明了一个名为showAlert的布尔值,该值表示是否展示警告。最后,我们使用alert(由于其在SwiftUI中的可选类型),在使用时通过isPresented属性手动展开Alert并显示给用户。