iphone - Error de compilación con: cambiar, "expresión esperada antes"
objective-c cocoa (3)
En C normal, debe encerrar esto entre corchetes en ambos casos. Sospecho que esto puede solucionar su problema:
case 1:
{
NSLog(@"");
NSString *aStr;
break;
}
Vea esta pregunta SO para obtener más información.
Otra forma de evitar este problema es colocar una declaración entre la etiqueta del caso y la primera declaración como lo hizo en su ejemplo de trabajo anterior. Vea los comentarios y la respuesta de Quinn Taylor para más información.
Corte a la caza. He recreado mi problema, ya que es bastante auto explicativo.
esto se cumple sin error:
switch (n) {
case 1:
NSLog(@"");
NSString *aStr;
break;
default:
break;
}
esto compila con error y solo le falta el NSLog ():
switch (n) {
case 1:
NSString *aStr;
break;
default:
break;
}
arroja un error al compilar " Expresión esperada antes de ''NSString'' "
¿Me estoy perdiendo de algo?
No puede declarar una variable como la primera declaración en un case
sin corchetes, y en muchos otros contextos en lenguajes basados en C. Consulte Declaración de variables dentro de una instrucción switch para más detalles.
case 0: {
Loading my nib file;
break;
}
case 1: {
Loading another nib file;
break;
}
Note that if you don''t have an assignment (x = y) right after the case it won''t be a problem. For example: