2

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

enum TypeEnum {
    case foo(FooClass)
    case doo(DooClass)
    case roo(RooClass)
}

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

if let anObject = object as? TypeEnum {

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

 }

我不知道该放什么而不是???. Xcode 告诉我放一些东西,但我只想打开.foo.

有任何想法吗?

4

2 回答 2

5

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

switch anObject {
case .foo(let fooObj):
    ...
}

如果您只是不关心它们,或者什么都没有:

switch anObject {
case .foo:
    ...
}

请务必查看Swift 编程语言书以获取更多详细信息。

于 2017-07-05T13:37:43.157 回答
0

您可以使用下划线表示您对关联类型不感兴趣:

case .foo(_):
...
于 2017-07-05T13:54:54.637 回答