奇怪的“切换案例”声明

时间:2011-04-25 05:18:43

标签: objective-c c switch-statement

我在我的一个文件中有这段代码:

switch ([sender tag]){
    ...

    case 100:
        UIView *v1 = [UIView alloc] initWithFrame blabllabla...
        [v1  bla bla bla...
        break;
    ...

看起来很标准吧?但它给了我这个错误:

"Use of undeclared v1"

然后我输入“NSLog()”或“if”语句,如下所示:

case 100:
    NSLog(@"why need a nslog here?");

case 100:
    if(1==1) {
        ...

然后它有效。

任何人都知道为什么会这样?这是我的代码还是客观规则?

1 个答案:

答案 0 :(得分:5)

如果不使用C块,则无法声明范围限制为case的变量。将其更改为:

case 100:
{
    UIView *v1 = [UIView alloc] initWithFrame blabllabla...
    [v1  bla bla bla...
    break;
}

它应该有用。