为什么NSString initWithFormat不起作用。错误"预期表达"

时间:2014-03-28 09:47:41

标签: ios objective-c xcode nsstring switch-statement

我有以下代码

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 enter image description here

谢谢

3 个答案:

答案 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只是形式化的转码标签设置)。