Je pense que je vais être aveugle, car je ne peux pas comprendre où l'erreur de syntaxe est dans ce code:
if( cell == nil ) {
titledCell = [ [ [ TitledCell alloc ] initWithFrame:CGRectZero
reuseIdentifier:CellIdentifier ] autorelease
];
switch( cellNumber ) {
case 1:
NSString *viewDataKey = @"Name";
etc...
Lorsque j'essaie de le compiler, j'obtiens un Erreur: erreur de syntaxe avant '*' 'Jeton sur la dernière ligne.
Désolé pour une telle question fondamentale, mais que manque-t-il?
Je n'ai pas de compilateur d'objectif-C approprié à portée de main, mais tant que les constructions C sont identiques:
switch { … }
vous donne ne Portée de niveau de bloc, pas une pour chaque case
. Déclarant une variable partout où le début de la portée est illégale et à l'intérieur d'un switch
est en particulier dangereux car son initialisation peut être sautée plus de.
Est-ce que l'une des suivantes résout le problème?
NSString *viewDataKey;
switch (cellNumber) {
case 1:
viewDataKey = @"Name";
…
}
switch (cellNumber) {
case 1: {
NSString *viewDataKey = @"Name";
…
}
…
}
En C, vous ne pouvez déclarer que des variables au début d'un bloc avant toute déclaration sans déclaration.
{
/* you can declare variables here */
/* block statements */
/* You can't declare variables here */
}
En C++, vous pouvez déclarer des variables dans lesquelles vous en avez besoin.
Pourrait-il ne pas être valide pour déclarer une variable dans un bloc de commutation?
Comment résoudre l'avertissement:
1. Insérez un ;
Dans la première ligne de votre bloc de cas
2. Codes de vente à l'intérieur des accolades