最接近的可可等同于枚举

G.P*_*ell 0 c cocoa enums objective-c switch-statement

是否有Cocoa类具有与C的枚举值类似的功能?我知道我可以在Cocoa中使用枚举,但是如果我想在NSArray(只接受对象)中放入枚举呢?

Car*_*rum 7

枚举只是一个整数类型 - 你可以把它包装NSNumber进去NSArray.


Chu*_*uck 5

在Cocoa中,全局常量通常用于代替枚举,其中值将逻辑地包含在集合中.例如:

NSString * const HandTool = @"HandTool__InternalValue";
NSString * const BrushTool = @"BrushTool__InternalValue";
NSString * const EraserTool = @"EraserTool__InternalValue";
Run Code Online (Sandbox Code Playgroud)

例如,所有NSAttributedString键都是类似枚举的,但是以这种方式表示.

  • 使用枚举的原因包括将值定义为位掩码的能力,您可以将它们组合在一起并廉价地测试其中的特定位,以及将它们用作`switch`语句中的情况的能力.使用对象的原因包括将它们用作字典中的键(如NSAttributedString属性名称所示)或作为集合或存档中的对象而不必将其打包的能力. (5认同)