Mam problem z tworzeniem nowych zmiennych lokalnych wewnątrz instrukcji switch. Myślałem, że to coś w nagłówkach klas, ale nawet otrzymywałem błędy, próbując przydzielić nowy NSObject. Oto mój składnia:Instrukcje przełączania i przydzielanie zmiennych instancji w 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;
}
Uwaga, to nie są 'Ivars'. Ivar jest zmienną instancji, którą możesz zadeklarować w pliku nagłówkowym. Są to po prostu zmienne lokalne. Byłoby dobrze, gdyby komitet standardów C zezwolił na styl, który próbowaliście. –
dzięki za wyjaśnienie, zmienię pytanie – Justin
@GrahamPerks: Ivars nie muszą już być w nagłówku; mogą być natychmiast po linii '@ implementacja'. –