在枚举类型上切换大小写

时间:2015-11-25 07:35:05

标签: ios swift enums switch-statement

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

enum SearchFilterOptionType {
    case Checkbox
    case Selection
    case Interval
    case Text
}

我能够做到以下几点:

if dataElements[0].type == SearchFilterOptionType.Checkbox {
    return
}

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

  

“枚举案例'复选框'不是类型的成员   '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
    }
}

2 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:2)

试试这个

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

    default:
        break
    }

请注意错误消息中的!和切换语句