【发布时间】:2012-01-25 23:16:08
【问题描述】:
我在 Objective-C 中使用 switch 语句,当我在另一个 switch 语句中嵌套一个 switch 语句时,编译器会发现很多错误。所以我的一般问题是 switch 语句如何影响我可以调用的方法,以及导致编译器产生错误的行为类型?
switch ([indexPath section])
{
case 0:
cell.textLabel.text = [infoKeysArray objectAtIndex:indexPath.row];
CountdownFormatter *formatter = [[CountdownFormatter alloc] init];
switch (indexPath.row) {
case 0:
cell.detailTextLabel.text = [formatter stringForCountdownInterval:taskInfo.duration];
break;
case 1:
cell.detailTextLabel.text = [formatter stringForCountdownInterval:taskInfo.elapsedTime];
default:
break;
}
[formatter release];
break;
case 1:
cell.textLabel.text = [actionsKeysArray objectAtIndex:indexPath.row];
//NSArray *segments = [NSArray arrayWithObjects:@"Low", @"Medium", @"High", nil];
switch (indexPath.row) {
case 0:
cell.detailTextLabel.text = priority;
[cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator];
break;
case 1:
[cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator];
UISwitch *switch = [[UISwitch alloc] init];
break;
case 2:
break;
default:
break;
}
break;
case 2:
cell.textLabel.text = [detailsKeysArray objectAtIndex:indexPath.row];
break;
default:
break;
}
这是我遇到问题的地方。为什么我不能在这个嵌套的 switch 语句中声明 UISwitch?我知道我写了 [[UISwitch alloc] init] 但编译器将其标记为错误。有什么原因会发生吗?
【问题讨论】:
-
嵌套switch语句没有错。您为什么不发布您的代码和错误消息,以便我们尝试修复它?
-
我试图不只是让人们直接编辑我的代码,我宁愿自己弄清楚,但显然这里发生了一些我不知道的事情。
标签: objective-c switch-statement