Cut to the chase I have recreated my problem as it is fairly self explanatory.
this complies without error:
switch (n) { case 1: NSLog(@""); NSString *aStr; break; default: break; }
this compiles with error and it's only missing the NSLog():
switch (n) { case 1: NSString *aStr; break; default: break; }
it throws an error at compile "Expected expression before 'NSString'"
Am I missing something here?
In normal C you'd have to enclose this in brackets in both cases. I suspect this may fix your problem:
case 1: { NSLog(@""); NSString *aStr; break; }
See this SO question for more info.
Another way to get around this problem is to put a statement between the case label and the first declaration as you've done in your working example above. See the comments and Quinn Taylor's answer for more info.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With