【问题标题】:Closest cocoa equivalent of enum最接近枚举的可可当量
【发布时间】:2010-06-17 21:52:25
【问题描述】:

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

【问题讨论】:

    标签: c objective-c cocoa enums switch-statement


    【解决方案1】:

    枚举只是一个整数类型 - 您可以将其包装在 NSNumber 中以将其放入 NSArray

    【讨论】:

      【解决方案2】:

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

      NSString * const HandTool = @"HandTool__InternalValue";
      NSString * const BrushTool = @"BrushTool__InternalValue";
      NSString * const EraserTool = @"EraserTool__InternalValue";
      

      例如,所有的 NSAttributedString 键都是 enum-like,但以这种方式表示。

      【讨论】:

      • 使用枚举的原因包括将值定义为位掩码的能力,您可以将它们或在一起并廉价地测试其中的特定位,以及在switch 语句中将它们用作案例的能力.使用对象的原因包括能够将它们用作字典中的键(如 NSAttributedString 属性名称所示)或用作集合或存档中的对象,而无需将它们装箱。
      猜你喜欢
      • 2014-11-09
      • 1970-01-01
      • 2020-11-17
      • 2013-05-18
      • 1970-01-01
      • 2012-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多