Я получаю ошибку компилятора при использовании объекта Objective C в операторе switch:
switch (myConstant)
{
case 0:
UIViewController *myController = [[[UIViewController alloc] init] autorelease];
[self.navigationController pushViewController:myViewController animated:YES];
break;
case 1:
// stuff
break;
default:
break;
}
Состояние ошибки:
Ожидаемое выражение перед 'UIViewController'
'myViewController' необъявленный (первое использование в этой функции)
Я понимаю, что вторая ошибка является прямым результатом первой ошибки, но я не понимаю, почему я получаю ошибку "ожидаемое выражение" в первую очередь ...
Если я поставлю ;
в конце строки case 0:
, он скомпилируется, но мне не нужно было этого делать, нет?
Это также не удастся скомпилировать, с той же ошибкой:
switch (0)
{
case 0:
int a = 0;
break;
default:
break;
}
Однако, если я объявлю int a;
за пределами блока коммутатора, то a = 0;
скомпилируется нормально.
Мне показалось, что я понимаю заявления о смене - ясно, что я не понимаю. Может кто-нибудь объяснить, пожалуйста?