'if'语句是否总是评估所有条件?

问题描述:

可能重复:
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.*.com/2010/11/dr-strangedupe-or-how-i-learned-to-stop-worrying-and-love-duplication/ – 2012-08-12 13:56:29

编号目标C(作为C和许多其他语言)使用short circuit evaluation

+0

if if' objectIsOfType:x'将失败,整个'if'将是错误的,这是预期的行为。因为在评估“object.property”时他需要'objectOfType:x'类型为x,那么它应该在OP提供的情况下工作。 – Dementic 2012-08-12 13:40:29

Objective-C支持短路评估(从左到右)。 但无论如何,你需要检查对象上无:))