在Swift类中使用Objective-C的枚举

3

我在Objective-C中有一个枚举

typedef enum {
status1,
status2,
} BattStatus;
@property (nonatomic) BattStatus batStatus;

为了在Swift中使用它,我正在进行以下操作:
switch (MySingleton.sharedInstance().batStatus){
    case status1: break
    case status2: break
    default: break
} 

我遇到了错误:BattStatus未符合'IntervalType'协议。这个错误出现在status1case行。

目前我还不能编辑第一个Objective-C单例类,只能暂时使用它。

1个回答

1

如果使用了NS_ENUM宏,Objective-C的enum声明才会作为Swift的enum导入。您需要在任何BattStatus实例上使用value属性来访问其值以进行比较。

您可以在这里阅读更多信息: 在Swift中使用C风格的 "typedef enum"


谢天谢地,我得编辑 Obj-C 单例,所以我没有测试它,但是你的意思是我需要这样做吗:status1.value - CalZone
status1.value...batStatus.value都不可比较,它们只是实例本身。 - Nate Cook

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接