'CalcButton' 类型的值没有成员 'rawValue'

Value of type 'CalcButton' has no member 'rawValue'

我有问题。 我是编程初学者,在 youtube 上搜索如何制作计算器并尝试自己动手。我做的和他做的完全一样,但我收到一条错误消息,无法弄清楚问题出在哪里,并且在整个论坛上搜索了帮助,但没有看到任何答案!我在我的 macbook 上使用 Xcode 并且正在使用 swift.

代码如下:


enum CalcButton {
    case one
    case two
    case three
    case four
    case five
    case six
    case seven
    case eight
    case nine
    case zero
    case dividera
    case multiplicera
    case subtrahera
    case addera
    case likamed
    case clear
    case procent
    case plusminus
}

struct ContentView: View {
    
    let buttons: [[CalcButton]] = [
        [.seven, .eight, .nine]
    ]
    
    var body: some View {
        ZStack {
            Color.black.edgesIgnoringSafeArea(/*@START_MENU_TOKEN@*/.all/*@END_MENU_TOKEN@*/)
            VStack {
                
                // Text Display
                HStack {
                    Spacer()
                    Text("0")
                        .bold()
                        .font(.system(size: 64))
                        .foregroundColor(.white)
                    
                    // Knappar
                    
                    ForEach(buttons, id: \.self) { row in
                        ForEach(row, id: \.self) { item in
                            Button(action: {
                                
                                
                                   }, label: {
                                    Text(item.rawValue)
                                   
                                   
                            
                        
                        })
                    }
                }
            }
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}
}```

在您的代码中您正在调用 item.rawValue,但您的枚举 CalcButtons 没有与之关联的原始值,因此枚举不存在此 属性。

您需要分配一个原始值并根据它的使用方式判断它应该是字符串,因此将您的枚举声明更改为

enum CalcButtons: String { 
    <same code as before>
}

您可以阅读有关枚举原始值的更多信息here,但简而言之,枚举中的每个 case 项目都会获得一个分配给它的字符串值,该字符串值与项目名称相同.