If语句可以告诉作业是否有效?

时间:2012-06-14 17:07:53

标签: objective-c ios if-statement

我有一个对象,如果成功则返回一个值,如果失败则返回false(或nil)。

我想将该值分配给变量

if(var1 = [object foo])
{
    //if the [object foo] returned a variable, goes here
}
else
{
    //[object foo] returned FALSE (or nil), go here
}

如果分配有效,是否可以检测到If语句?

4 个答案:

答案 0 :(得分:4)

这样可以,但会产生警告,因为这是一个常见错字(=而不是==)。要使该警告静音,请添加另一组括号:

if ((var = [object foo])) ...

由于这很容易导致误解,很多人会建议不要这样做。对于简单的if语句,首先进行赋值要清楚得多:

var = [object for];
if (var) ...

while循环中,这更有用,但也被许多人视为有害。

答案 1 :(得分:2)

我不确定我理解你的问题,但让我试着解释一些你可以检查的情况

1)属性包含值

if ([object foo])
{
    // If foo has a value associated to it that is not nil/false/zero
}
else
{
    // If foo equals nil, false or zero
}

2)变量的分配成功

if ((bar = [object myMethod]))
{
    // If myMethod returns any non-nil value
}
else
{
    // If myMethod returns nil
}

3)变量的先前分配是成功的

bar = [object myMethod];

if (bar)
{
    // If bar has a value associated to it that is not nil/false/zero
}
else
{
    // If bar equals nil, false or zero
}

答案 2 :(得分:0)

在if语句中使用==代替=

在if语句之前

,您可能有var1 = [object foo] see comparison operators

答案 3 :(得分:0)

如果你的意思是变量包含预期结果,那么你可以在变量上执行另一个变量,而不是预期结果,或者为null来检查它。