2012-02-03 63 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; 

此外,您還可以決定是否要放置枚舉實施在你正在工作的課程或頭文件中。