我正在使用枚举,如下所示:

typedef NS_ENUM(NSInteger, MyURLType) {
    MyURLType1,
    MyURLType2,
    MyURLType3
};

当我尝试比较或识别类型时出现问题:
if (type == MyURLType2)

"Incompatible integer to pointer conversion"MyUrlType2 的情况下(不是在 MyUrlType3 的情况下),我收​​到 MyURLType1 警告。我在声明中做错了什么吗?有任何想法吗?

谢谢!

最佳答案

从你的评论



那么 type 不是 MyURLType 类型,而是 pointer to MyURLType 类型。

if (type == MyURLType2)

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

您需要将 type 声明为简单的 MyURLType ( MyURLType type =… ) 或在比较 ( type ) 时取消引用 if (*type == MyURLType2)

关于ios - 警告 : Incompatible integer to pointer conversion when using NS_ENUM types,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18527752/

10-12 16:18