Sembra che si stia verificando un problema durante la creazione di nuove variabili locali all'interno di un'istruzione switch. Ho pensato che fosse qualcosa nelle intestazioni di classe, ma ho persino ricevuto degli errori nel tentativo di allocare un nuovo NSObject. Ecco la mia sintassi:Istruzioni switch e allocazione di variabili di istanza in 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, quelli non sono 'ivars. Un ivar è una variabile di istanza, qualcosa che dovresti dichiarare nel file di intestazione. Queste sono semplicemente variabili locali. Sarebbe sicuramente bello se il comitato degli standard C consentisse lo stile che hai tentato. –
grazie per il chiarimento, correggerò la domanda – Justin
@GrahamPerks: Ivars non deve più essere nell'intestazione; possono essere immediatamente dopo la riga '@ implementation'. –