05@多用列舉表示狀態、選項、狀態碼

Zack_Go發表於2019-01-05

多用列舉表示狀態、選項、狀態碼

要點:

  • 應該用列舉來表示狀態機的狀態、傳遞給方法的選型以及狀態碼等值。給這些值起個易懂的名字。
  • 如果把傳遞給某個方法的選型表示為列舉型別,而多個選型又可以同時使用,那麼就將個選型值定義為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語句並未處理所有列舉。

相關文章