多用列舉表示狀態、選項、狀態碼
要點:
- 應該用列舉來表示狀態機的狀態、傳遞給方法的選型以及狀態碼等值。給這些值起個易懂的名字。
- 如果把傳遞給某個方法的選型表示為列舉型別,而多個選型又可以同時使用,那麼就將個選型值定義為2的冪,以便通過按位或操作將其組合起來。
// 定義可以彼此組合的選型:按位或操作符組合。
enum UIViewAutoreszing {
UIViewAutoreszingNone = 0,
UIViewAutoreszingFlexibleLeftMargin = 1 << 0,
UIViewAutoreszingFlexibleWidth = 1 << 1,
UIViewAutoreszingFlexibleRightMargin = 1 << 2,
UIViewAutoreszingFlexibleTopMargin = 1 << 3,
UIViewAutoreszingFlexibleHeight = 1 << 4,
UIViewAutoreszingFlexibleBottomMargin = 1 << 5,
}
複製程式碼
- 用NS_ENUM與NS_OPTIONS巨集來定義列舉型別,並指明其底層資料型別。這樣做可以確保列舉是用開發者所選的底層資料型別實現出來的,而不會採用編譯器所選的型別。
- 在處理列舉型別的switch 語句中不要實現default分支。這樣的話,加入新列舉之後,編譯器就會提示開發者:switch語句並未處理所有列舉。