Parece que tengo problemas para crear nuevas variables locales dentro de una sentencia switch. Pensé que era algo en los encabezados de mi clase, pero incluso recibí errores al intentar asignar un nuevo NSObject. Aquí está mi sintaxis:Cambie las declaraciones y la asignación de variable de instancia en Objective-C
-(NSArray *)charactersFromChapter:(NSInteger)number {
NSObject *noError = [[NSObject alloc] init];
//line above does not cause error
NSArray *characters;
switch (number) {
case 1:
NSObject *obj = [[NSObject alloc] init];
//error happens in line above (Expected expression)
characters = [NSArray arrayWithObject:obj];
break;
case 2:
break;
case 3:
break;
}
return characters;
}
Nota, esos no son '' Ivars. Un ivar es una variable de instancia, algo que declararías en el archivo de encabezado. Estas son simplemente variables locales. Seguramente sería bueno si el comité de estándares de C permitiera el estilo que has intentado. –
gracias por la aclaración, corregiré la pregunta – Justin
@GrahamPerks: Ivars ya no necesita estar en el encabezado; pueden ser inmediatamente después de la línea '@ implementation'. –