开关/箱子问题

时间:2010-10-21 11:53:22

标签: iphone

如果我尝试在case语句中创建变量,它会给我构建错误 任何人都可以告诉我为什么这个语法会给我一个构建错误(“'NSMutableArray'之前的预期表达式”)。

3 个答案:

答案 0 :(得分:5)

尝试在case语句中添加括号{}以便能够声明变量,如下所示:

switch (my_switch_statement)
{
     case my_switch_case: 
     {
         NSMutableArray *my_switch_array;
     }
}

答案 1 :(得分:4)

假设您尝试执行以下操作:

switch (...){
  case someCase:
        NSMutableArray *array = ...
        break;
...
}

c(所以objective-c)不允许在switch-case语句中声明变量。如果你想这样做,你必须通过将代码放在{} block:

中来限制变量范围
switch (...){
  case someCase:{
        NSMutableArray *array = ...
  }
        break;
...
}

答案 2 :(得分:0)

通常你会想要在开关范围之外声明变量,就像任何条件代码块一样。


NSString * valueString;
int i = 1;
switch(i){
  case 0:
    valueString = @"case 0";
  break;
  case 1:
    valueString = @"case 1";
  break;
  default:
    valueString = @"not case 1 or 0";
  break;
}
//valueString=>@"case 1"