【发布时间】:2010-06-17 21:52:25
【问题描述】:
是否有一个 Cocoa 类具有与 C 中的枚举值类似的功能?我知道我可以在 Cocoa 中使用枚举,但是如果我想将枚举放入 NSArray(它只接受对象)中怎么办?
【问题讨论】:
标签: c objective-c cocoa enums switch-statement
是否有一个 Cocoa 类具有与 C 中的枚举值类似的功能?我知道我可以在 Cocoa 中使用枚举,但是如果我想将枚举放入 NSArray(它只接受对象)中怎么办?
【问题讨论】:
标签: c objective-c cocoa enums switch-statement
枚举只是一个整数类型 - 您可以将其包装在 NSNumber 中以将其放入 NSArray。
【讨论】:
在 Cocoa 中,全局常量通常用于代替枚举,这些值将逻辑地包含在集合中。例如:
NSString * const HandTool = @"HandTool__InternalValue";
NSString * const BrushTool = @"BrushTool__InternalValue";
NSString * const EraserTool = @"EraserTool__InternalValue";
例如,所有的 NSAttributedString 键都是 enum-like,但以这种方式表示。
【讨论】:
switch 语句中将它们用作案例的能力.使用对象的原因包括能够将它们用作字典中的键(如 NSAttributedString 属性名称所示)或用作集合或存档中的对象,而无需将它们装箱。