你能试试这两个代码吗?第一个引发错误,而不是第二个错误。我想知道是不是因为我的XCode版本,如果没有,为什么会发生。
int typeNumber = 4;
switch (typeNumber) {
case typeNumberEvent:
NSString myString;
break;
case typeNumberAd:
NSURL myURL;
break;
default:
NSNumber myNumber;
break;
}
int typeNumber = 4;
switch (typeNumber) {
case typeNumberEvent:
NSLog(@"hello");
NSString myString;
break;
case typeNumberAd:
NSLog(@"hello");
NSURL myURL;
break;
default:
NSLog(@"hello");
NSNumber myNumber;
break;
}
答案 0 :(得分:5)
如果您尝试在case
的第一行创建变量,则编译器会抛出错误。
用括号括起 case 块。一切都会好的。
case typeNumberEvent: {
NSString myString;
break;
}
答案 1 :(得分:1)
如果在case块中声明变量,则应该使用花括号声明该块。你的例子将成为:
int typeNumber = 4;
switch (typeNumber) {
case typeNumberEvent:
{
NSString myString;
break;
}
case typeNumberAd:
{
NSURL myURL;
break;
}
default:
{
NSNumber myNumber;
break;
}
}
这个答案很好地总结了它:Can I declare variables inside an Objective-C switch statement?