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;
}
答案 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;
}
}