得到错误 - '控制到达非空函数的结束'

时间:2010-01-07 05:05:17

标签: iphone

嘿得到这个错误'控制到达非空函数的结尾'在它上面的}行。 我究竟做错了什么? 请帮忙

(NSString *)tableView:(UITableView *)tableView         titleForHeaderInSection:(NSInteger)section {
 NSLog(@"Here16");
 if (section == 0) {
  return @"A";
 }

 if (section == 1) {
  return @"B";
 }
 if (section == 2) {
  return @"C";
 }
 if (section == 3) {
  return @"D";
 }
 if (section == 4) {
  return @"E";
 }
 if (section == 5) {
  return @"F";
 }
 if (section == 6) {
  return @"G";
 }
 if (section == 7) {
  return @"H";
 }
 if (section == 8) {
  return @"I";
 }
 if (section == 9) {
  return @"J";
 }
 if (section == 10) {
  return @"K";
 }
 if (section == 11) {
  return @"L";
 }
 if (section == 12) {
  return @"M";
 }
 if (section == 13) {
  return @"N";
 }
 if (section == 14) {
  return @"O";
 }
 if (section == 15) {
  return @"P";
 }
 if (section == 16) {
  return @"Q";
 }

 if (section == 17) {
  return @"R";
 }
 if (section == 18) {
  return @"S";
 }
 if (section == 19) {
  return @"T";
 }
 if (section == 20) {
  return @"U";
 }
 if (section == 21) {
  return @"V";
 }
 if (section == 22) {
  return @"V";
 }
 if (section == 23) {
  return @"W";
 }
 //if (section==0) {
  //return @"X";
 //}
 if (section == 24) {
  return @"Y";
 }
 if (section == 25) {
  return @"Z";
 }

 //NSLog(@"%d", [listOfItems count]);



 NSLog(@"That whole error thing");
}

4 个答案:

答案 0 :(得分:3)

如果您收到的信件不在您的某个选项中,则不会返回。 (它可能永远不会发生,但这是一个警告......)

尝试在方法结束时添加return nil;

答案 1 :(得分:2)

为什么不创建一个临时变量来保存你想要返回的值,然后返回那个变量?

NSMutableString *theString = [NSMutableString stringWithString:@" "];    
if (section == 0)     
{      
  [theString setString:@"A"]    
}    
else if(section == 1)    
{    
  [theString setString:@"B"]    
}

.....etc.....

return theString;

请注意在现有代码中使用Else If - 将检查每个条件,这是非常低效的。如果满足第一个条件,则其他条件都不成立,因此使用Else If会使程序浪费时间检查它们。

这基本上告诉我你需要回过头来重新学习一些编程基础知识。

答案 2 :(得分:1)

尝试插入类似的内容:

return @"";

就在结束之前。

虽然看起来像switch这样的东西更漂亮,但同样的事情可能会实现。

答案 3 :(得分:0)

工作正常。试着把回报0;在你的方法结束时。

例如:

if([pickerView isEqual:myPicker])
{
    return 1;
}
else
if([pickerView isEqual:myPicker2])
{
    return 2;
}
return 0;