Swift中Objective-C typedef枚举的平等性

Den*_*oli 14 enums swift

我在斯威夫特Facebook的Objective-C的SDK工作,我试图从枚举值进行比较的FBSessionState值.但是我得到了编译器错误:

找不到接受提供的参数的'=='的重载

我基本上想要完成:

if state == FBSessionStateOpen { ... }
Run Code Online (Sandbox Code Playgroud)

我可以通过比较价值来解决这个问题......

if state.value == FBSessionStateOpen.value { ... }
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有办法让这项工作更像是一个Swift枚举?

Nik*_*nyi 9

您可以使用'.value'解包enum和常量以获取底层整数,该整数应该是可切换的:

switch x.value {
  case Foo.value:
}
Run Code Online (Sandbox Code Playgroud)

也许这是一个错误,苹果在未来的版本中修复它.