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