2011-04-29 82 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