首页 > 解决方案 > 警报按钮的 .default 成员没有上下文类型错误

问题描述

此示例代码显示了一个按钮,当您单击它时表示一个警报。

struct LoginView: View {
    ...
    @State private var showAlert = false

    var body: some View {
        NavigationView {
            VStack {
                ...

                Button("Login") {
                    self.showAlert = true
                }
                .alert(isPresented: self.$showAlert) {
                    Alert(title: Text("Login error"), message: Text("detail message"), dismissButton: .default(Text("Ok")))  // this line report a error
                }
            }
            .navigationBarTitle("Login View")
        }
    }
}

Reference to member 'default' cannot be resolved without a contextual type但是当我编译这段代码时,Xcode会报错。我应该如何修复此代码?

标签: swiftswiftui

解决方案


提供代码的项目在iOS Simulator和中构建良好iOS device,没有任何错误。Canvas Simulator也可以正常工作(我使用 Xcode 11.2.1 和 iOS 13.2.2)。

在此处输入图像描述

尝试删除文件夹中所有已编译的项目DerivedData

在 Finder 中按Cmd- Shift-G并转到:

~/Library/Developer/Xcode/DerivedData/

清理此文件夹的内容后,再次构建您的项目,它必须按预期工作。


推荐阅读