繁体   English   中英

在枚举类型上切换大小写

[英]Switch case on enum type

我有一个问题,我希望对枚举类型 ( 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
    }
}

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

尝试这个

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

    default:
        break
    }

注意! 在您的错误消息和 switch 语句中

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM