【问题标题】:iOS - Is this a task for enums?iOS - 这是枚举的任务吗?
【发布时间】:2012-02-03 23:17:41
【问题描述】:

如果我想实现以下代码,枚举是否合适?我查了几个关于枚举的问题,但我还是有点不确定。

if (dayOfWeek == Monday)
{
    // Do something
}
else if (dayOfWeek == Tuesday || dayOfWeek == Wednesday)
{
    // Do something else
}

如果这看起来正确,我将如何初始化枚举?它会放在头文件还是实现文件中?

【问题讨论】:

    标签: ios enums initialization


    【解决方案1】:

    如果我想实现以下代码,枚举是否合适?

    无需对替代方案进行太详细的介绍——是的。

    我将如何初始化枚举?

    我通常像这样在 C 中声明一个枚举:

    typedef enum MONDayOfWeek {
      MONDayOfWeek_Undefined = 0,
      MONDayOfWeek_Monday,
      MONDayOfWeek_Tuesday,
      MONDayOfWeek_Wednesday,
      MONDayOfWeek_Thursday,
      MONDayOfWeek_Friday,
      MONDayOfWeek_Saturday,
      MONDayOfWeek_Sunday
    } MONDayOfWeek;
    
    // in use:
    MONDayOfWeek day = MONDayOfWeek_Monday;
    

    MON 将是您的图书馆或组织的前缀。 DayOfWeek 将是库中的枚举名称,然后附加值。

    虽然很罗嗦,但你往往会很好地避免冲突。

    它会放在头文件还是实现文件中?

    在头文件中,如果你希望它被多个文件使用,否则在实现文件中。

    【讨论】:

      【解决方案2】:

      是的,这对枚举非常有用,请查看此 SO 帖子以了解枚举的构造:

      What is a typedef enum in Objective-C?

      typedef enum {
          Monday,
          Tuesday,
          Wednesday,
          Thursday,
          Friday,
          Saturday,
          Sunday
      } DayOfTheWeek;
      

      此外,您可以决定是否将枚举实现放在您正在使用的类或头文件中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-14
        • 2020-10-27
        • 2018-10-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多