在Objective-C中使用枚举?[英] Using enum in Objective-C?

本文是小编为大家收集整理的关于在Objective-C中使用枚举?的处理方法,想解了在Objective-C中使用枚举?的问题怎么解决?在Objective-C中使用枚举?问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

这是在Objective-C中使用emums的正确(甚至是有效的方法)吗?即未使用menuitem,而只是定义列表添加= 1,load = 2,list = 3等.

enum menuItems {
    add = 1    ,
    save       ,
    load       ,
    list       ,
    removeAll  ,
    remove     ,
    quit       
};

int optionSelect;

scanf("%d", &optionSelect);

switch (optionSelect) {
    case add: 
        //...
        break;
}

欢呼加里

推荐答案

如果要为枚举给出语义含义,则可以考虑定义自定义类型并将变量" OptionsElect"声明为该类型的变量! 在代码...

typedef enum menuItems {
       add = 1,
       save,
       load,
       list,
       removeAll,
       remove,
       quit} MenuItem;


MenuItem optionSelect;

scanf("%d", &optionSelect);

switch (optionSelect) {
    case add: 
    ...
    break;
    .
    .
    .
}

也就是说,几乎与您所写的东西相同,但是从开发人员的侧面,您给出了变量" optionselect"的特殊含义,而不仅仅是一个简单的int!

其他推荐答案

在这一过程中,未来,提及NS_ENUM也可能会有所帮助.您会使用它:

typedef NS_ENUM(uint16_t, TYEnummedType)
{
    TYEnummedType1,
    TYEnummedType2
};

具有与正常enum和typedef的效果几乎相同的效果,但明确地决定了整数类型,如果您想将这些东西从某个地方包装出来,请在struct对齐中精确,这确实很有帮助,除其他用途.

它已添加到具有10.8版本的版本6和OS X的iOS SDK中,但它只是一个c型宏,并且不会添加任何您无法使用vanilla typedef和enum>的东西,所以没有后退担心的兼容性.它仅显式地将两件事绑在一起.

其他推荐答案

您的方式将起作用.但是,如果您想将menuitems用作变量或参数的类型,则需要执行类型:

typedef enum {add = 1,save,load,list,removeAll,remove,quit}  menuItems;
menuItems m = add;
[myobj passItem:m];

本文地址:https://www.itbaoku.cn/post/359184.html