0

我收到一条针对 if 行的“预期标识符”消息。任何想法为什么?

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

我想说这两个输入都是空的......我想没有更简单的方法来说明 Obj C++ 中的文本是否为空?

4

2 回答 2

1
if ([inputA.text length]==0 && [inputB.text length]==0)
{     
    c = 1;
}
于 2012-05-15T07:06:48.457 回答
1

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

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

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

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

也就是说,派的答案也很好。如果任何一个输入也具有nil文本属性,它也可以工作。

于 2012-05-15T07:45:18.380 回答