确认 UITextField 值的值是枚举的成员

Confirming that the value of a UITextField value is a member of an enum

我有一个 UITextField 和一个 UIPickerViewenum 设置它的值和一个保存按钮用户按下以保存他们的选择。

我的问题是,有没有一种方法可以错误捕获此设置,以便在用户按下保存时确认 UITextField 的值是我的枚举的成员?

我担心的是文本字段留空或粘贴了替代值。

如果您不希望用户能够输入值,那么使用 UIButton 而不是 UITextField 并使用更新按钮的标签可能更简单选择器值。

但是,您可以轻松地使用枚举的原始值来验证输入 -

例如

enum Directions: String {
    case North = "North"
    case South = "South"
    case East = "East"
    case West = "West"
}

if let possibleDirection=Directions(rawValue: myTextField.text) {
    println("Valid direction")
}
else {
    println("Invalid direction")
}

将为包含 'North' 的文本字段打印 "Valid direction",但为包含 'Up'.

的文本字段打印 "Invalid direction"

如果您希望 'north' 成为可接受的输入,您可能需要将所有内容转换为小写。