2010-06-10 6 views
2

Ok, donc c'est bizarreRetrait NSLog brise compilateur

J'ai ce code

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
switch (indexPath.row) { 
    case 1: 
    NSLog(@"Platform Cell Selected"); 
    AddGamePlatformSelectionViewController *platformVC = 
     [[AddGamePlatformSelectionViewController alloc] 
     initWithNibName:@"AddGamePlatformSelectionViewController" bundle:nil]; 
    platformVC.context = context; 
    platformVC.game = newGame; 
    [self.navigationController pushViewController:platformVC animated:YES]; 
    [platformVC release]; 
    break; 
    default: 
    break; 
    } 
} 

Ce qui fonctionne très bien.

Lorsque je supprime la déclaration NSLog, comme ceci:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
switch (indexPath.row) { 
    case 1: 
    //NSLog(@"Platform Cell Selected"); 
    AddGamePlatformSelectionViewController *platformVC = 
     [[AddGamePlatformSelectionViewController alloc] 
     initWithNibName:@"AddGamePlatformSelectionViewController" bundle:nil]; 
    platformVC.context = context; 
    platformVC.game = newGame; 
    [self.navigationController pushViewController:platformVC animated:YES]; 
    [platformVC release]; 
    break; 
    default: 
    break; 
    } 
} 

-je obtenir les erreurs du compilateur suivantes

/Users/DVG/Development/iPhone/Backlog/Classes/AddGameTableViewController.m:102: 0 /Users/DVG/Development/iPhone/Backlog/Classes/AddGameTableViewController.m:102: erreur: expression attendue avant 'AddGamePlatformSelectionViewController'

/Users/DVG/Development/iPhone/Backlog/Classes/AddGameTableViewController.m:103 : 0/Utilisateurs/DVG/Developmen t/iPhone/Backlog/Classes/AddGameTableViewController.m: 103: erreur: 'platformVC' non déclaré (première utilisation dans cette fonction)

Si je viens d'éditer les deux // pour commenter cette ligne, tout fonctionne nager.

Répondre

5

Vous ne pouvez pas déclarer un objet (par exemple AddGamePlatformSelectionViewController *platformVC) comme la première ligne case ...

Vous pouvez le résoudre en ajoutant un code avant que (par exemple NSLog) ou en plaçant le code dans la case entre {...} comme ceci:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    switch (indexPath.row) { 
    case 1: 
    { 
     AddGamePlatformSelectionViewController *platformVC = [[AddGamePlatformSelectionViewController alloc] 
     initWithNibName:@"AddGamePlatformSelectionViewController" bundle:nil]; 
     // the rest of the code... 
     break; 
    } 
    } 
} 
+0

Intéressant. Merci! J'ai appris quelque chose de nouveau. – DVG

+1

Veuillez marquer ceci comme étant répondu. –

0

Avez-vous la même erreur si vous supprimez l'instruction NSLog au lieu de le commenter? Peut-être que le compilateur n'aime pas que vous commenciez un bloc de cas avec un commentaire. (Ridicule, je sais, mais vaut le coup?)