2011-04-29 49 views

回答

4

如上所述,你的逻辑有点倒退,但在此之外他们的工作原理是相同的。

需要考虑的主要问题是(variable != nil)对于您正在检查的内容以及变量的类型有点更清楚,因为有人可能会开始认为变量是布尔值。

+0

也是,当你扫描代码时很容易忽略'!',这就是为什么我总是使用'(variable!= nil)'形式;它让我更加明白我想要做的事情。 – kubi 2011-04-29 15:17:08

+0

嗨,谢谢你的回复,你的意思是说他们'完全一样'?我也得到了一个矛盾的答复,以下这个..所以现在非常困惑。 – user542584 2011-04-29 15:27:40

+0

你试图问的意图使他们相同(即如果你已经把(变量== nil)而不是!=,这是我以为你打算) – 2011-04-29 16:25:46

1

之间的差额他们是完全一样的:

if (!var) 相当于 if (var != nil)

+0

我认为他让问题错了,他想知道的是如果(!var)和if(var == nil)之间有什么区别。 – ferostar 2011-04-29 14:52:44

+0

真的吗?我已经在dealloc方法中看到了很多Apple代码中的语句{if(!variable)[variable release]} ...这意味着如果变量被分配,释放它..它可能不会意味着 - 如果变量是零,释放它 - 对吗? – user542584 2011-04-29 15:25:12

+0

你是完全正确的。对不起! – 2011-04-29 15:34:22