带有类的枚举上的S​​wift Switch case

use*_*385 2 enums switch-statement swift associated-value

这是我第一次使用这种枚举,带有关联值类型的枚举,我需要switch根据对象的类型进行声明,我无法做到,这是枚举:

enum TypeEnum {
    case foo(FooClass)
    case doo(DooClass)
    case roo(RooClass)
}
Run Code Online (Sandbox Code Playgroud)

我的对象有一个类型的变量TypeEnum,现在我需要检查枚举中的对象类型:

if let anObject = object as? TypeEnum {

  switch anObject {
  case .foo(???):
     return true
    ...
    default:
      return false
    }

 }
Run Code Online (Sandbox Code Playgroud)

我不知道用什么代替???. Xcode 告诉我放一些东西,但我只想打开.foo.

有任何想法吗?

Pau*_*tos 5

您可以使用它let来捕获关联的值

switch anObject {
case .foo(let fooObj):
    ...
}
Run Code Online (Sandbox Code Playgroud)

或什么如果你不关心他们:

switch anObject {
case .foo:
    ...
}
Run Code Online (Sandbox Code Playgroud)

请务必查看Swift Programming Language 一书以获取更多详细信息。