我正在尝试测试nil的对象属性。当我这样做时,不抛出错误:
if (item.pic == nil)
{ //do something
}
但是,当我做否定时, 会抛出错误:
if (!item.pic == nil)
{ //do something different
}
The error is: Comparison between pointer and integer INT and Void
我想要第二个表述(虽然我想我可以反转所有内容)但是,我想理解为什么会抛出错误而其他人不会。有谁能解释一下?谢谢。
答案 0 :(得分:2)
你的第二次测试应该是:
if (item.pic != nil)
{
//do something different
}
翻译为if item.pic is not equal to nil
。在Objective-C中,这可以缩短为:
if (item.pic)
{
// do something different
}
答案 1 :(得分:1)
你必须这样做:
if (!(item.pic == nil)) // or if(item.pic != nil)
{ //do something different
}
item.pic == nil
:指针与指针之间的比较
!item.pic == nil
:整数与点之间的比较 - >错误。 !item.pic
将返回YES / NO(1/0),因此无法与nil