0

I wrote this enum with parameter is a string

public enum ButtonType {
    case number(value: String)
    case clear(value: String)
    case backspace(value: String)
    
    static func generateNumpad() -> [ButtonType] {
        return [
            .number(value: "1"),
            .number(value: "2"),
            .number(value: "3"),
            .number(value: "4"),
            .number(value: "5"),
            .number(value: "6"),
            .number(value: "7"),
            .number(value: "8"),
            .number(value: "9"),
            .clear(value: "Clear"),
            .number(value: "0"),
            .backspace(value: "Del"),
        ]
    }
}

In view controller I assign all button type to an array

let buttons = ButtonType.generateNumpad()

How can I get the parameter value? example: buttons[0].value

Please help!

aheze
  • 24,434
  • 8
  • 68
  • 125
  • 1
    This question was asked on StackOverflow already. The link is attached down below. https://stackoverflow.com/questions/24263539/accessing-an-enumeration-association-value-in-swift – KyawTheMonkey May 22 '21 at 05:20

1 Answers1

1

Inside ButtonType enum, declare property like this:

enum ButtonType {
    ...
    var value: String {
        switch self {
        case .number(let number): return number
        case .clear(let clearValue): return clearValue
        case .backspace(let backSpaceValue): return backSpaceValue
        }
    }
}
son
  • 1,058
  • 6
  • 7