Странное заявление "Switch Case" - PullRequest
2 голосов
/ 25 апреля 2011

У меня есть этот фрагмент кода в одном из моих файлов:

switch ([sender tag]){
    ...

    case 100:
        UIView *v1 = [UIView alloc] initWithFrame blabllabla...
        [v1  bla bla bla...
        break;
    ...

Выглядит довольно стандартно, да?Но это дает мне эту ошибку:

"Use of undeclared v1"

Затем я помещаю оператор "NSLog ()" или "if", например:

case 100:
    NSLog(@"why need a nslog here?");

или

case 100:
    if(1==1) {
        ...

Тогда это работает.

Кто-нибудь знает, почему это?Это мой код или правила target-c?

1 Ответ

5 голосов
/ 25 апреля 2011

Нельзя объявлять переменные, область действия которых ограничена case, без использования блока C.Измените его на:

case 100:
{
    UIView *v1 = [UIView alloc] initWithFrame blabllabla...
    [v1  bla bla bla...
    break;
}

, и оно должно работать.

...