警告:使用NS_ENUM类型时,不兼容的整数到指针转换

gem*_*asr 4 enums objective-c ios

我正在使用枚举,类似这样:

typedef NS_ENUM(NSInteger, MyURLType) {
    MyURLType1,
    MyURLType2,
    MyURLType3
};
Run Code Online (Sandbox Code Playgroud)

当我尝试比较或识别类型时出现问题:

if (type == MyURLType2)
Run Code Online (Sandbox Code Playgroud)

我和(并非如此)的情况下我会收到"Incompatible integer to pointer conversion"警告.我在宣言中做错了吗?有任何想法吗?MyUrlType2MyUrlType3MyURLType1

谢谢!

Seb*_*ian 6

从你的评论

是的,我使用的是MyURLType*type = MyURLTypeX

然后type不是类型MyURLType,它是类型pointer to MyURLType.

if (type == MyURLType2)
Run Code Online (Sandbox Code Playgroud)

在这里,您将指针类型(type)与整数类型(MyURLType)进行比较.如果是整数类型,0它不会生成警告,因为它可能是一个检查NULL.

在compare()时,您需要声明type为simple MyURLType(MyURLType type =…)或dereference .typeif (*type == MyURLType2)