【问题标题】:IOS/Objective-C: Testing for nil and oppositeIOS/Objective-C:测试 nil 和相反
【发布时间】:2015-10-27 11:49:12
【问题描述】:

我正在尝试测试对象属性是否为零。当我遵循它时 not 会抛出错误:

if (item.pic == nil)
{ //do something
}

但是,当我做否定时,它确实抛出错误:

if (!item.pic == nil)
{ //do something different
}

The error is: Comparison between pointer and integer INT and Void

我想要第二个公式(尽管我想我可以颠倒一切)但是,我想了解为什么一个会抛出错误而另一个不会。谁能解释一下?谢谢。

【问题讨论】:

  • 你的第二个测试应该是if (item.pic != nil)
  • 请检查我的答案并尝试使用if (YES == nil)。你会得到同样的错误

标签: objective-c


【解决方案1】:

你的第二个测试应该是:

if (item.pic != nil)
{
    //do something different
}

翻译为if item.pic is not equal to nil。在 Objective-C 中,这可以缩短为:

if (item.pic)
{
    // do something different
}

【讨论】:

  • 没想到这么简单。谢谢!
【解决方案2】:

你必须这样做:

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 比较

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-07
    • 1970-01-01
    相关资源
    最近更新 更多