为什么我们在iOS中使用枚举?

12 浏览
0 Comments

为什么我们在iOS中使用枚举?

这个问题在这里已经有了答案:

什么是Objective-C中的typedef枚举?

我不认为我根本明白什么是枚举,以及何时使用它。

typedef enum {
    kPersonTypeFaculty,
    kPersonTypeStaff,
    kPersonTypeSearch
} 

所以请给出关于为什么使用枚举以及如何使用枚举的想法。

admin 更改状态以发布 2023年5月22日
0
0 Comments

枚举并非完全必要,但它们可以使代码更易于阅读和理解。例如,考虑以下代码片段:

    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 语句负责处理什么的。

如果我们使用枚举,它会看起来像这样,如果我们遗漏了默认语句并错过了一个 case 语句,编译器也会为我们提供帮助:

    switch(type){
        case kPersonTypeFaculty:
            break;
        case kPersonTypeStaff:
            break;
        case kPersonTypeSearch:
            break;
        default:
            break;
    }

如果你更为严格地声明你的枚举:

typedef enum CardState : NSUInteger {
    CardStateActivated = 0,
    CardStateArchived = 1,
    CardStateDepleted = 2,
    CardStateUnauthorized = 3
} CardState;

现在,你可以将枚举类型用作方法的参数,例如:

- (void) reloadCardWithState:(CardState) state;

这显然也可以使用 NSIntegerint 实现,但使用枚举使代码更易于阅读,帮助你更轻松地解决错误。它还使在像 XCode 这样的编辑器中编写代码更容易,因为你将知道方法需要一个 CardState,然后你可以去查看你想要使用或正在使用的状态。

0