所以我在另一个switch语句中为某些部分和行创建了一个switch语句,很难解释,所以看看实际的代码。无论如何,我想知道是否应该避免这样的模式,或者它是否真的无关紧要,我不熟悉stackoverflow,因为你可能已经注意到了,所以我不能完全确定之前已经问过这个问题。
switch(indexPath.section) {
case 0: {
switch ([indexPath row]) {
case 0: {
[self.navigationController pushViewController:introductionViewController animated:YES];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
break;
}
case 1: {
[self.navigationController pushViewController:matterViewController animated:YES];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
break;
}
break;
}
case 1: {
break;
}
}
}
答案 0 :(得分:0)
switch
声明中的switch
声明完全合法。它没有任何内在错误,但如果在任何一个陈述中都有很多案例,可能很难遵循。一种解决方案是将内部switch语句变为单独的函数或方法。例如,如果你有这个:
switch (a)
{
case foo:
switch (b)
{
case bar:
doSomething();
break;
case bas:
doSomethingElse();
break;
}
break;
case foo2:
...whatever
}
你可以这样做:
void handleFoo (int x)
{
switch (x)
{
case bar:
doSomething();
break;
case bas:
doSomethingElse();
break;
}
}
...
main ()
{
...
switch (a)
{
case foo:
handleFoo(b);
break;
case foo2:
...whatever;
break;
}
}