2012-02-03 47 views
2

如果我想实现下面的代码,那么enums是合适的吗?我查了几个关于枚举的问题,但我还是有点不确定。iOS - 这是一个枚举任务吗?

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

如果这看起来是正确的,我将如何去初始化枚举?它会进入头文件或实现文件吗?

回答

7

如果我想执行下面的代码,那么枚举是合适的吗?

没有太过于详细的选择 - 是的。

我该如何去初始化枚举?

我通常用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将是库中的枚举名称,然后附加值。

尽管它很罗嗦,但你倾向于避免碰撞。

它会进入头文件或实现文件吗?

在标题中,如果你想让它被多个文件使用,否则在实现文件中。

+1

+1为前缀和未定义。这可以防止很多错误。 – Sulthan 2012-02-04 00:18:09

2

是的,这将是巨大的枚举,看看这个SO后看到一个枚举的建设:

What is a typedef enum in Objective-C?

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

此外,您还可以决定是否要放置枚举实施在你正在工作的课程或头文件中。