我正在使用枚举,如下所示:
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/