use*_*537 2 enums cocoa-touch objective-c
我是Objective C的新手.这是我的代码
enum effectName {
RESET, Flea,Tint,Grayscale,Pixelate,Blur,Mirror,changeBrightness,changeContrast,Invert
};
enum effectName EffectToApply;
enum effectName prevEffect;
Run Code Online (Sandbox Code Playgroud)
在实现文件中,我要将EffectToApply和prevEffect声明为null.我试着这样做
-(void) Effect
{
EffectToApply= NULL;
prevEffect=nil;
}
Run Code Online (Sandbox Code Playgroud)
但它给出了一个警告不兼容的指向整数转换的指针.有人可以帮我怎么做?
枚举实际上是一个整数,就像一个整数一样,这样的类型不能代表C或Objective-C 1中 0的离散值.
处理此问题的最简单方法是使用"NONE"枚举选项,通常值为0.
enum effectName {
NoEffect, ResetEffect, ..
};
enum effectName EffectToApply; // default value => 0 / NoEffect
Run Code Online (Sandbox Code Playgroud)
1参见一致的C实现#define NULL可能是很多C-lawyer说的错误,如何定义NULL; 一些库将NULL定义为0或0L,虽然允许(不幸的是)没有发出观察到的警告.