我正在尝试将我的某些Obj-C类转换为Swift。还有其他一些Obj- C类仍在该转换后的类中使用枚举。我在“预发布文档”中进行了搜索,但找不到它,或者我错过了它。有没有办法在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 Blog。在与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博客中获取
注意:这不适用于String枚举或具有关联值的枚举。您的枚举必须是整数绑定的
在Objective-C中,这看起来像
Bear type = BearBlack; switch (type) { case BearBlack: case BearGrizzly: case BearPolar: [self runLikeHell]; }