I don’t have a suitable Objective-C compiler on hand, but as long as the C constructs are identical:
switch { … }
gives you one block-level scope, not one for each case
. Declaring a variable anywhere other than the beginning of the scope is illegal, and inside a switch
is especially dangerous because its initialization may be jumped over.
Do either of the following resolve the issue?
NSString *viewDataKey;
switch (cellNumber) {
case 1:
viewDataKey = @"Name";
…
}
switch (cellNumber) {
case 1: {
NSString *viewDataKey = @"Name";
…
}
…
}