【问题标题】:XCode GCC-4.0 vs 4.2XCode GCC-4.0 与 4.2
【发布时间】:2010-05-22 21:01:36
【问题描述】:

我刚刚将编译器选项从 4.0 更改为 4.2。

现在我得到一个错误:

jump to case label crosses initialization of 'const char* selectorName'

它在 4.0 中运行良好

有什么想法吗?

【问题讨论】:

  • 你确定这不是“只是”一个警告吗?无论哪种方式,您都应该修复代码中的错误和/或在此处发布实际代码。

标签: objective-c xcode gcc objective-c++


【解决方案1】:

只是猜测 - 您在 1 个 switch-case 语句中声明变量(可能是 const char*) - 您应该将该案例包装在 {} 中以解决该问题。

// error
case 1:
   const char* a = ... 
   break; 

// OK
case 1:{
   const char* a = ... 
}
   break; 

【讨论】:

    【解决方案2】:

    你可能在 case 中声明一个变量,而不用大括号括起来:

    case foo:
        const char* selectorName;
        // ...
        break;
    

    应该是:

    case foo: {
        const char* selectorName;
        // ...
        break;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-07
      • 1970-01-01
      • 2011-12-08
      • 2011-04-09
      • 2012-02-13
      • 2011-12-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多