枚举类型的开关大小写
Switch case on enum type
我有一个问题,我希望对枚举类型 (SearchFilterOptionType
) 执行 switch-case,但由于某些原因 Swift/the Xcode 编译器无法识别该成员.
我有以下枚举:
enum SearchFilterOptionType {
case Checkbox
case Selection
case Interval
case Text
}
我可以做到以下几点:
if dataElements[0].type == SearchFilterOptionType.Checkbox {
return
}
但是如果我想用 switch-case 复制相同的内容,我会收到错误消息:
"Enum case 'Checkbox' is not a member of type
'SearchFilterOptionType!'"
switch dataElements[0].type {
case SearchFilterOptionType.Checkbox:
break
default:
break
}
已添加
var dataElements: Array<SearchFilterOption>
struct SearchFilterOption {
var title: String!
var type: SearchFilterOptionType!
init(title: String, type: SearchFilterOptionType) {
self.title = title
self.type = type
}
}
这是因为您将 type
声明为可选。删除 !
(感叹号)会有帮助。
试试这个
switch dataElements[0].type! {
case SearchFilterOptionType.Checkbox:
break
default:
break
}
注意错误消息和 switch 语句中的 !
我有一个问题,我希望对枚举类型 (SearchFilterOptionType
) 执行 switch-case,但由于某些原因 Swift/the Xcode 编译器无法识别该成员.
我有以下枚举:
enum SearchFilterOptionType {
case Checkbox
case Selection
case Interval
case Text
}
我可以做到以下几点:
if dataElements[0].type == SearchFilterOptionType.Checkbox {
return
}
但是如果我想用 switch-case 复制相同的内容,我会收到错误消息:
"Enum case 'Checkbox' is not a member of type 'SearchFilterOptionType!'"
switch dataElements[0].type {
case SearchFilterOptionType.Checkbox:
break
default:
break
}
已添加
var dataElements: Array<SearchFilterOption>
struct SearchFilterOption {
var title: String!
var type: SearchFilterOptionType!
init(title: String, type: SearchFilterOptionType) {
self.title = title
self.type = type
}
}
这是因为您将 type
声明为可选。删除 !
(感叹号)会有帮助。
试试这个
switch dataElements[0].type! {
case SearchFilterOptionType.Checkbox:
break
default:
break
}
注意错误消息和 switch 语句中的 !