2010-10-21 95 views
1

如果我嘗試在case語句中創建變量,它會給我構建erroe 任何人都可以爲我講述爲什麼這個語法給我一個構建錯誤(「在'NSMutableArray'之前的預期表達式」)。開關/案例問題

+1

請張貼您的代碼。 – 2010-10-21 11:55:41

+1

[在switch語句中聲明變量]的可能重複(http://stackoverflow.com/questions/1231198/declaring-variables-inside-a-switch-statement) – Vladimir 2010-10-21 12:02:31

回答

5

嘗試增加括號{}在你的case語句可以聲明變量,像這樣:

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

感謝Benoit。添加大括號解決了問題 – Swapna 2010-10-21 12:17:27

4

假設你試着這樣做:

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

C(等目標c)不允許申報的switch-case語句中的變量。如果你想要把你的代碼中要做到這一點,你必須限制變量的作用域{}塊:

switch (...){ 
    case someCase:{ 
     NSMutableArray *array = ... 
    } 
     break; 
... 
} 
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"