在枚举类型上切换大小写

Nik*_*sen 2 enums switch-statement ios swift

我有一个问题,我希望在枚举类型(SearchFilterOptionType)上做一个switch-case ,但由于某种原因,Swift/Xcode编译器无法识别该成员.
我有以下枚举:

enum SearchFilterOptionType {
    case Checkbox
    case Selection
    case Interval
    case Text
}
Run Code Online (Sandbox Code Playgroud)

我能够做到以下几点:

if dataElements[0].type == SearchFilterOptionType.Checkbox {
    return
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我想用switch-case复制相同的内容,我会得到错误:

"Enum case'Checkbox'不是'SearchFilterOptionType!'类型的成员."

switch dataElements[0].type {
    case SearchFilterOptionType.Checkbox:
        break

    default:
        break
}
Run Code Online (Sandbox Code Playgroud)

任何想法都表示赞赏!

添加:

var dataElements: Array<SearchFilterOption>
Run Code Online (Sandbox Code Playgroud)


struct SearchFilterOption {

    var title: String!
    var type: SearchFilterOptionType!

    init(title: String, type: SearchFilterOptionType) {
        self.title = title
        self.type = type
    }
}
Run Code Online (Sandbox Code Playgroud)

rky*_*kyr 6

这是因为您声明type为可选.删除!(感叹号)将有所帮助.