3 Stimmen

Warum der Unterschied in UIAlertView?

Ich habe den folgenden Code, der funktioniert:

// 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;
    }
}

Wenn ich jedoch die NSLogs entferne, erhalte ich den folgenden Fehler:

Erwarteter Ausdruck vor 'NSMutableArray'

Ich verstehe nicht, warum das so ist. Ich kann wahrscheinlich die NSLog's verlassen, aber warum?

5voto

Vladimir Punkte 169002

Das Problem ist, dass die Variablendeklaration nicht direkt auf das case-Label folgen kann. Um das zu lösen, setze ich normalerweise den gesamten case-Block in {}:

...
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;
}
...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X