Dan*_*ark 1 autoboxing objective-c
我有这种类型的Enum与TypeDef:
typedef enum {
ControlDisplayOptionNone = 0,
ControlDisplayOptionOne = 100
} ControlDisplayOption;
Run Code Online (Sandbox Code Playgroud)
而且我希望能够将它们放在这样的数组中:
- (NSArray *)displayOptions {
return @[@ControlDisplayOptionNone];
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用,即使这样也行不通:
NSNumber *test = @ControlDisplayOptionNone;
Run Code Online (Sandbox Code Playgroud)
唯一可行的选择是传统的:
return @[[NSNumber numberWithInt:ControlDisplayOptionNone]];
Run Code Online (Sandbox Code Playgroud)
有没有办法使用自动装箱?
使用括号: @(ControlDisplayOptionNone)
Objective-C Literals的Clang文档中解释了该语法."Boxed Enums"部分说:
Cocoa框架经常使用枚举定义常量值.尽管枚举值是完整的,但它们可能不会直接用作盒装文字(这可以避免与将来
'@'使用的Objective-C关键字冲突).相反,枚举值必须放在盒装表达式中.
| 归档时间: |
|
| 查看次数: |
177 次 |
| 最近记录: |