将TypeDef作为Objective-C中的参数

时间:2012-10-25 22:08:37

标签: iphone objective-c ios cocoa-touch

我有一种情况,我在我的常量文件中声明多个相关的typedef enums

typedef enum 
{
    AnimalTypeBear,
    AnimalTypeBunny,
    MemeTypeCount
} 
AnimalType;

typedef enum 
{
    FishTypeSalmon,
    FishTypeTrout,
    FishTypeCount
} 
FishType;

现在,我想为名为type的初始化程序定义一个参数,该参数可以同时接受这两个typedef enums作为参数。我目前正在将类型定义为NSUInteger,无论我将哪种类型发送到初始化程序中,我都会保持0(即FishTypeTrout应为1但它为0)。哪个类型的对象应该type适用于enter code here typeDef枚举?

1 个答案:

答案 0 :(得分:2)

我不是100%肯定你在问什么,但我尝试了以下代码:

typedef enum AnimalType : NSUInteger
{
    AnimalTypeBear,
    AnimalTypeBunny,
    MemeTypeCount
} AnimalType;


typedef enum FishType : NSUInteger
{
    FishTypeSalmon,
    FishTypeTrout,
    FishTypeCount
} FishType;


void TestFunction(NSUInteger at)
{
    printf("at = %d\n",at);
}

,当我拨打TestFunction(FishTypeTrout);

时,它会打印1

这有帮助吗?