我想我快看不见了,因为我找不出这段代码中的语法错误在哪里:
if( cell == nil ) {
    titledCell = [ [ [ TitledCell alloc ] initWithFrame:CGRectZero
        reuseIdentifier:CellIdentifier ] autorelease
    ];
    switch( cellNumber ) {
        case 1:
            NSString *viewDataKey = @"Name";
etc...当我试图编译它时,我得到了一个错误:语法错误在最后一行的'*‘标记之前。
对于这样一个基本的问题,我很抱歉,但是我错过了什么?
发布于 2009-07-12 04:35:26
不能在case语句的开头声明变量。创建一个测试用例,只包含这些内容,您将得到相同的错误。
它与在代码块中间声明变量无关-甚至采用了一种标准,允许在case语句的开头不让GCC接受声明。看起来,GCC将case标签视为行的一部分,因此不允许在那里进行声明。
一种简单的解决方法是在案例的开头加一个分号,这样声明就不在开头了。
发布于 2009-07-12 04:42:23
在C中,你只能在任何非declare语句之前,在代码块的开头声明变量。
{
   /* you can declare variables here */
   /* block statements */
   /* You can't declare variables here */
}在C++中,您可以在需要的任何地方声明变量。
发布于 2016-12-23 04:38:19
您可以在switch语句中创建变量,但必须在块中创建它,以便定义该变量的作用域。
示例:
switch(number){
    case 1:
        {
            // Create object here
            // object is defined only for the scope of this block
        }
        break;
    case 2:
        {
            // etc.
        }
        break;
    default:
        break;
}https://stackoverflow.com/questions/1115304
复制相似问题