IOS / Objective-C:测试零和相反

时间:2015-10-27 02:54:41

标签: objective-c

我正在尝试测试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

我想要第二个表述(虽然我想我可以反转所有内容)但是,我想理解为什么会抛出错误而其他人不会。有谁能解释一下?谢谢。

2 个答案:

答案 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

进行比较