Почему разница в UIAlertView? - PullRequest
       8

Почему разница в UIAlertView?

3 голосов
/ 27 февраля 2011

У меня есть следующий код, который работает:

// Load new game screen
-(IBAction)newGame_button:(id)sender {
    myAlert = [[UIAlertView alloc]
                    initWithTitle:@"Varning" 
                    message:@"Om du går vidare kommer pågående spel stoppas och nollställas!"
                    delegate:self
                    cancelButtonTitle:@"Tillbaka"
                    otherButtonTitles:@"Fortsätt", nil];
    myAlert.tag=kTagNewGame;
    [myAlert show];
    [myAlert release];
}

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
    switch(myAlert.tag ) {
        case kTagContinueGame:
            NSLog(@"kTagContinueGame");
            NSMutableArray *continueGameArray = [[NSMutableArray alloc] initWithCapacity:0];

            AccessCurrentGameData *getCurrentGameInfo = [AccessCurrentGameData new];
            continueGameArray = [getCurrentGameInfo continueTheCurrentGame];
            [getCurrentGameInfo release];
            [continueGameArray retain];
            [continueGameArray release];

            QandA_ViewController * temp = [[QandA_ViewController alloc] init];
            [self setQanda_ViewController:temp];
            [temp release];
            [[self navigationController] pushViewController:qanda_ViewController animated:YES];
            break;
        case kTagNewGame:
            NSLog(@"kTagNewGame");
            AccessCurrentGameData *zeroCurrentGameFileFunction = [AccessCurrentGameData new];
            [zeroCurrentGameFileFunction firstCreationOrRestoreOfGameDataFile];
            [zeroCurrentGameFileFunction release];

            NewGameViewController * temp2 = [[NewGameViewController alloc] init];
            [self setNewGameViewController:temp2];
            [temp2 release];
            [[self navigationController] pushViewController:newGameViewController animated:YES];
            break;
        default:
            break;
    }
}

Однако, когда я удаляю NSLog, я получаю следующую ошибку:

Ожидаемое выражение перед 'NSMutableArray'

Я не понимаю, почему это происходит.Я, вероятно, могу покинуть NSLog's, но почему?

1 Ответ

5 голосов
/ 27 февраля 2011

Проблема в том, что объявление переменной не может следовать непосредственно за меткой регистра. Чтобы решить эту проблему, я обычно помещаю весь блок case в {}:

...
case kTagNewGame:
{
        AccessCurrentGameData *zeroCurrentGameFileFunction = [AccessCurrentGameData new];
        [zeroCurrentGameFileFunction firstCreationOrRestoreOfGameDataFile];
        [zeroCurrentGameFileFunction release];

        NewGameViewController * temp2 = [[NewGameViewController alloc] init];
        [self setNewGameViewController:temp2];
        [temp2 release];
        [[self navigationController] pushViewController:newGameViewController animated:YES];
        break;
}
...
...