objective-c - 在 Swift 中访问 Objective-C 的 NS_ENUM

标签 objective-c swift

我有一个名为 ObserveTypeNS_ENUM,它有两个属性,分别称为 ObserveObserveAll。如图所示,我可以访问ObserveAll 属性,但是我无法访问Observe

NS_ENUM 在 objective-C 的头文件中。

我知道将 Observe 更改为 ObserveXObserveXYZ 会起作用。

但是如何在不更改 Observe 名称的情况下访问 Observe

注意我必须在 Swift 上访问 Observe

enter image description here

最佳答案

除了上述答案之外,我想指出的是,您可以使用 NS_SWIFT_NAME 宏为您的 Objective-C NS_ENUM 指定一个 Swift 名称:

typedef NS_ENUM(NSUInteger, XYZAwesomeEnum) {
    XYZAwesomeEnumA,
    XYZAwesomeEnumB,
    XYZAwesomeEnumC,
} NS_SWIFT_NAME(AwesomeEnum);

稍后在 Swift 中使用它:

AwesomeEnum.a

Apple Developer: Renaming Objective-C APIs for Swift

关于objective-c - 在 Swift 中访问 Objective-C 的 NS_ENUM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38366720/

相关文章:

iphone - 我应该如何迁移我的核心数据?

ios - 是否可以在 iPhoneX 上同时运行 ARWorldTracking Session 和 ARFaceTracking Session?

ios - Swift AVPlayerViewController 完成按钮关闭应用程序

swift - 在 Swift 中使用 Timer() 的命令行工具

当网络连接较差时,iOS 应用程序在启动时会挂起一段时间

objective-c - 保留静态数组会导致非弧项目泄漏吗?

ios - 从 InterfaceBuilder 和通过代码设置时获得不同的颜色

swift - 重定向 uri 在导航到 oauth url 时导致问题

ios - 演示广告在 iOS 9 中不可用

iphone - 语义问题 : Use of undeclared identifier