det*_*e-c 2 c objective-c switch-statement
我在我的一个文件中有这段代码:
switch ([sender tag]){
...
case 100:
UIView *v1 = [UIView alloc] initWithFrame blabllabla...
[v1 bla bla bla...
break;
...
Run Code Online (Sandbox Code Playgroud)
看起来很标准吧?但它给了我这个错误:
"Use of undeclared v1"
Run Code Online (Sandbox Code Playgroud)
然后我放了一个"NSLog()"或"if"语句,如下所示:
case 100:
NSLog(@"why need a nslog here?");
Run Code Online (Sandbox Code Playgroud)
要么
case 100:
if(1==1) {
...
Run Code Online (Sandbox Code Playgroud)
然后它工作.
谁知道为什么会这样?这是我的代码还是客观规则?
小智 5
在case不使用C块的情况下,不能声明范围限制为a的变量.将其更改为:
case 100:
{
UIView *v1 = [UIView alloc] initWithFrame blabllabla...
[v1 bla bla bla...
break;
}
Run Code Online (Sandbox Code Playgroud)
它应该工作.