2012-08-12 120 views
0

可能重複:
Does Objective-C use short-circuit evaluation?'if'語句是否總是評估所有條件?

如果對象是特定類型的,而該對象的屬性有一定的價值,我想要做的事。

我可以使用:

if (objectIsOfType:x && object.property == y) 

還是需要嵌套這些?假設如果對象不是x類型,那麼詢問object.property將會發生錯誤。

+0

謝謝 - 我錯過了搜索的術語。刪除它是否是一個好習慣? – 2012-08-12 13:46:18

+1

我不這麼認爲 - 見http://blog.stackoverflow.com/2010/11/dr-strangedupe-or-how-i-learned-to-stop-worrying-and-love-duplication/ – 2012-08-12 13:56:29

回答

2

編號目標C(作爲C和許多其他語言)使用short circuit evaluation

+0

if if' objectIsOfType:x'將失敗,整個'if'將是錯誤的,這是預期的行爲。因爲在評估「object.property」時他需要'objectOfType:x'類型爲x,那麼它應該在OP提供的情況下工作。 – Dementic 2012-08-12 13:40:29

0

Objective-C支持短路評估(從左到右)。 但無論如何,你需要檢查對象上無:))