如果语句不起作用 - 这种语法有什么问题?

时间:2012-05-15 07:00:40

标签: xcode if-statement

我在if行上收到一条“预期标识符”消息。有什么想法吗?

    if ([inputA.text isEqualToString:@""]) && ([inputB.text <> isEqualToString:@""]) { 
        c = 1;
    }

我想说这两个输入都是空的...... 我认为如果Obj C ++中的文本为null,则没有更简单的方法可以说明了吗?

2 个答案:

答案 0 :(得分:1)

if ([inputA.text length]==0 && [inputB.text length]==0)
{     
    c = 1;
}

答案 1 :(得分:1)

if语句要求将其条件表达式括在括号中。你有一个复合表达式。您已经在逻辑AND操作(&amp;&amp;)的子表达式周围使用了括号,但是您没有用括号括起整个表达式。 (在这种情况下,子表达式实际上不需要括号,但它们不会受到伤害。)

接下来,第二个子表达式中有一个随机<>。那里做的是什么?在某些语言中,“不等于”运算符,但a)它不是C或Objective-C中的运算符,b)它不会进入像这样的消息发送表达式,并且c)你声称你正在尝试检查两个输入都是空的,所以我不希望你试图用空字符串来否定测试的相等性。

因此,解决这些问题只会产生:

if ([inputA.text isEqualToString:@""] && [inputB.text isEqualToString:@""]) { 
    c = 1;
}

那就是说,馅饼的答案也很好。如果其中一个输入也具有nil文本属性,它也可以工作。