【问题标题】: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;
此外,您可以决定是否将枚举实现放在您正在使用的类或头文件中。