我正在尝试将我的一些 Obj-C 类转换为 Swift。其他一些 Obj-C 类仍在该转换后的类中使用枚举。我在 Pre-Release Docs 中搜索并找不到它,或者我错过了它。有没有办法在 Obj-C 类中使用 Swift 枚举?或者这个问题的文档的链接?
这就是我在旧的 Obj-C 代码和新的 Swift 代码中声明我的枚举的方式。
我的旧 Obj-C 代码:
typedef NS_ENUM(NSInteger, SomeEnum) { SomeEnumA, SomeEnumB, SomeEnumC }; @interface SomeClass : NSObject ... @end
我的新 Swift 代码:
enum SomeEnum: NSInteger { case A case B case C }; class SomeClass: NSObject { ... }
更新: 从答案。它不能在 Swift 1.2 之前的版本中完成。但是根据这个官方的Swift 博客。在与 XCode 6.3 一起发布的 Swift 1.2 中,您可以在 Objective-C 中使用 Swift Enum,方法是@objc在前面添加enum
@objc
enum
从 Swift 版本 1.2 (Xcode 6.3) 开始,您可以。只需在枚举声明前加上@objc
@objc enum Bear: Int { case Black, Grizzly, Polar }
无耻地取自Swift 博客
注意:这不适用于字符串枚举或具有关联值的枚举。您的枚举需要是 Int-bound
在 Objective-C 中,这看起来像
Bear type = BearBlack; switch (type) { case BearBlack: case BearGrizzly: case BearPolar: [self runLikeHell]; }