我有以下代码
NSString * myStr = [[NSString alloc] initWithFormat:@""];
但在Xcode中,我发出了“预期表达”的红色感叹。
我解决了问题:
[NSString stringWithFormat:@"Number is not from 1 to 6. randomNumber is %d", randomNumber]
但我想知道问题是什么。
图像 http://imgur.com/iICMhYc&S7QwhFT#1
谢谢
答案 0 :(得分:6)
根据Objective-C规则,如果在case
的{{1}}内声明一个对象,则必须用括号switch
包围所有案例正文。
{}
答案 1 :(得分:1)
试试这个:
default:{
NSString * myStr = [[NSString alloc] initWithFormat:@""];
break;
}
与case
相同,如果您想在切换中定义实例,请添加{...}
答案 2 :(得分:1)
除非您将switch
正文括在case/default
中,否则无法在{}
语句中声明变量。
请注意,原因是switch
是一个长代码块,变量似乎在其中声明,但可能不会沿所有可能的路径初始化。如果您在作为goto
目标的标签后声明变量,则会收到相同的错误(并注意switch
只是形式化的转码标签设置)。