使用枚举时无法使用 shorthand @n 类型语法实例化 NSNumber?

Can't instantiate NSNumber with shorthand @n type syntax when using enum?

我有一个 enum 定义如下:

typedef enum dataTypes{
    LOW,
    MEDIUM,
    HIGH,
    MAX_DATA_TYPE
} dataTypeEnum;

我希望能够像这样实例化 NSArrayNSNumber

NSArray * numsToUse = @[@LOW, @MEDIUM];

这不是编译。有什么见解吗?我是否必须为其中的每一个都使用更笨重的 [NSNumber numberWithInt:] 还是有办法解决这个问题? (出于多种原因,我考虑并拒绝了 #define 声明)。

你只需要使用表达式语法:

NSArray * numsToUse = @[@(LOW), @(MEDIUM)];