如何声明枚举变量null?

时间:2014-08-13 22:35:18

标签: objective-c cocoa-touch enums

我是Objective C的新手。这是我的代码

enum effectName {
    RESET, Flea,Tint,Grayscale,Pixelate,Blur,Mirror,changeBrightness,changeContrast,Invert
};
enum effectName EffectToApply;        
enum effectName prevEffect;

在实现文件中,我将EffectToApply和prevEffect声明为null。我试着这样做

-(void) Effect    
{        
     EffectToApply= NULL;        
     prevEffect=nil;
} 

但它给出了一个警告,指向整数转换的不兼容指针。有人可以帮我怎么做吗?

1 个答案:

答案 0 :(得分:5)

枚举实际上是一个整数,就像一个整数一样,这样的类型不能代表C或Objective-C 1

中0的谨慎值。

解决这个问题最简单的方法就是拥有一个" NONE"枚举选项,通常值为0.

enum effectName {
    NoEffect, ResetEffect, ..
};

enum effectName EffectToApply; // default value => 0 / NoEffect

1 请参阅Can a conforming C implementation #define NULL to be something wacky,以了解很多C律师如何定义NULL;一些图书馆define NULL as 0 or 0L,虽然允许(不幸的是)没有发出观察到的警告。