У меня нет подходящего компилятора Objective-C под рукой, но до тех пор, пока конструкции C идентичны:
switch { … }
дает вам одну область уровня блока, а не по одному для каждого case
. Объявление переменной в любом месте, кроме начала области, является незаконным, а внутри switch
является особенно опасным, потому что его инициализация может быть перегнута.
Выполните одно из следующих действий решить проблему?
NSString *viewDataKey;
switch (cellNumber) {
case 1:
viewDataKey = @"Name";
…
}
switch (cellNumber) {
case 1: {
NSString *viewDataKey = @"Name";
…
}
…
}