Я использую операторы switch в Objective-C, и когда я вкладываю оператор 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;
}
Вот где у меня проблемы. Почему я не могу объявить UISwitch внутри этого вложенного оператора switch? Я знаю, что написал [[UISwitch alloc] init], но компилятор помечает его как ошибку. Есть причина, по которой это случится?