why we are using enum in ios
本问题已经有最佳答案,请猛点这里访问。
我不认为我从根本上理解枚举是什么,以及何时使用它。
1 2 3 4 5 | typedef enum { kPersonTypeFaculty, kPersonTypeStaff, kPersonTypeSearch } |
所以请考虑一下为什么使用枚举以及如何使用枚举
枚举并非完全必要,但它们使代码更易于阅读和理解。以这段代码为例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | switch(type){ case 0: //do something break; case 1: //do something else break; case 2: //do something else break; default: //do the general case break; } |
仅仅从这段代码就不可能找出每个case语句负责处理什么。
如果我们使用枚举,这就是它的样子,如果我们遗漏了默认语句而错过了一个案例,编译器也会帮助我们:
1 2 3 4 5 6 7 8 9 10 | switch(type){ case kPersonTypeFaculty: break; case kPersonTypeStaff: break; case kPersonTypeSearch: break; default: break; } |
如果更严格地声明枚举:
1 2 3 4 5 6 | typedef enum CardState : NSUInteger { CardStateActivated = 0, CardStateArchived = 1, CardStateDepleted = 2, CardStateUnauthorized = 3 } CardState; |
现在可以做的是使用枚举类型作为方法的参数。例如:
1 | - (void) reloadCardWithState:(CardState) state; |
这显然可以用