检查枚举中是否存在值

amo*_*the 5 enums ios swift swift3

以下是我的枚举

enum HomeDataType: String, CaseIterable {
  case questions           = "questions"
  case smallIcons          = "smallIcons"
  case retailers           = "retailers"
  case products            = "products"
  case banners             = "banners"
  case single_product      = "single_product"
  case single_retail       = "single_retail"
  case categories          = "categories"
  case airport             = "All_Airport"
  case single_banner       = "single_banner"
  case none                = "none"
}
Run Code Online (Sandbox Code Playgroud)

想要检查枚举中是否存在某个值?怎么做?

Leo*_*bus 9

您可以简单地尝试从字符串初始化一个新的枚举案例,或者检查所有案例是否包含rawValue等于您的字符串:

let string = "categories"

if let enumCase = HomeDataType(rawValue: string) {
    print(enumCase)
}

if HomeDataType.allCases.contains(where: { $0.rawValue == string }) {
    print(true)
}
Run Code Online (Sandbox Code Playgroud)