enums - Swift 中 Objective-C typedef 枚举的相等性

标签 enums swift

我在 Swift 中使用 Facebook Objective-C SDK,我正在尝试将 FBSessionState 值与枚举中的值进行比较。但是我得到编译器错误:

Could not find an overload for '==' that accepts the supplied arguments

我主要是想完成:

if state == FBSessionStateOpen { ... }

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

if state.value == FBSessionStateOpen.value { ... }

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

最佳答案

您可以使用“.value”解包枚举和常量以获得基础整数,它应该是可切换的:

switch x.value {
  case Foo.value:
}

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

关于enums - Swift 中 Objective-C typedef 枚举的相等性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24134649/

相关文章:

ios - 你如何在 Swift 中循环播放 AVPlayer?

swift - 如何通过 Swift 3 中的所有 Controller 使用声音文件

eclipse - Eclipse Kepler for Omnifaces 上的自动代码完成 o :importConstants

Swift 常量 : Struct or Enum

Java 枚举 : get FieldName knowing its value

java - Spock 认为测试类的内部枚举应该是 Spec 的属性

swift - 如何通过按下按钮在 View 中快速添加多个标签?

swift - 从 Parse.com 查询到 UICollectionView

swift - iOS : Firebase phone Authenication

c# - 使用泛型实现类型安全的枚举模式