xcode项目中的typedef枚举范围

时间:2011-07-01 02:44:30

标签: objective-c xcode

所以,我目前对枚举的理解是我可以用它来制作与数字相对应的常量。所以,

typedef enum 
{
    number0 = 0,
    number1 = 1,
    .
    .
    .

} Numbers;

允许我在代码的每个部分中将0引用为number0。这似乎工作正常。但是,我无法弄清楚如何在Xcode项目中使用它。例如,假设我编写了一个类NumberCounter,并在头文件中包含此代码。然后,我写了另一个班,numberCalculator。如果我想在第二个类中使用相同的定义,我是否必须A)在同一个源文件中编写类,或者B)在我想要使用数字的每个文件中包含上面的代码?

如果我将代码包含在一个类中,并在第二个类中排除它,我得到(当试图使函数返回类型Numbers的某个东西时)Parse Issue Expected a Type error,但是如果我包含两者中的代码都会出现“重新定义枚举器”的错误。目前,我的解决方法是在每个文件中包含代码,然后使用预处理器确保它只执行一次 - 即:

#ifndef NumberDef
#define NumberDef
typedef enum 
{
    number0 = 0,
    number1 = 1,
    .
    .
    .

} Numbers;
#endif

这有效,但我觉得应该有一个很好的简单方法。我在这里缺少什么?

1 个答案:

答案 0 :(得分:5)

包括其定义的标题。