在switch-case语句中使用常量时出错

时间:2014-08-27 06:58:10

标签: objective-c switch-statement constants

PRECAP:我已关注Why can I not use my constant in the switch - case statement in Objective-C ? ,但问题仍然存在。此外,我不允许在上面的链接中评论我的问题,这就是为什么我再次提出这个问题。

在iOS应用中,我有 constants.h

int const Category_Default = 1;

在另一个文件中(比如 test.m )我用这种方式使用它:

switch(//someVariable) {
    case Category_Default:
        //do something
    default:
        //do something
}

不幸的是编译器给我一个错误,因为案例标签没有减少到整数常量

我知道必须在编译时知道常量的值才能在case中的switch中使用。

我甚至按照Why can I not use my constant in the switch - case statement in Objective-C中的建议在.h文件中初始化了常量,但错误仍然存​​在。

注意:在这种情况下,我不想使用#defineenum

对此的任何帮助都将非常感激。

1 个答案:

答案 0 :(得分:0)

这是编译器规则我的朋友。您需要使用枚举或#define。

案例标签在根据编译器变化时可以更改 编译器将switch语句视为一组gotos。这就是为什么它不能成为变量