if else语句的预期表达式错误

时间:2012-07-31 12:01:48

标签: objective-c ios xcode if-statement

Xcode在我的代码中抱怨第二个else if语句中的“需要预期表达式”。香港专业教育学院尝试使用我在这里看过的代码中的括号,但这不起作用,不确定它现在想要什么表达式?工作正常,直到我添加第二个else if 我意识到这可能是基本的目标C的东西,但从来没有做过多于两个项目的if语句我有点卡住

-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{


if ([text1 isFirstResponder])return arrStatus.count;

else


   if ([text2 isFirstResponder]);return arrStatus2.count;

   else ///<<<<< wants an expected expression here


       if ([text3 isFirstResponder]);return arrStatus2.count;

 }

3 个答案:

答案 0 :(得分:3)

您的第二个if声明中只有一个额外的分号。 它应该是:if ([text2 isFirstResponder]) return arrStatus2.count;

PS。你在第3个if也犯了同样的错误......你应该考虑使用大括号,即使对于单行也是如此。

答案 1 :(得分:2)

在一些if语句之后,你有假的分号:

if ([text2 isFirstResponder]);   <--- here

除此之外,您的代码缩进很少,您应该停止将语句放在与if / else if行相同的行上:

-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
    if ([text1 isFirstResponder])
        return arrStatus.count;
    else if ([text2 isFirstResponder])
        return arrStatus2.count;
    else if ([text3 isFirstResponder])
        return arrStatus2.count;
 }

答案 2 :(得分:1)

您的函数/方法需要返回一些东西,在本例中是一个NSInteger。但是在代码中可能存在没有return语句的情况。在你的最后一个中,如果if语句不正确,则不会返回任何内容。

if ([text1 isFirstResponder]) {
   return arrStatus.count;
} else {
   if ([text2 isFirstResponder]) {
       return arrStatus2.count;
   } else {
        if ([text3 isFirstResponder]) {
           return arrStatus2.count;
        }
        // nothing will be returned here
        // you can return nil or actual 0
        // return nil;
        // return 0;
   }

}