2

我有开关。其中一种情况必须是数组计数:

    int count = [array count];
    switch (someValue) {
        case 0:
            [self foo];
            break;
        case count:
            [self bar];
            break;

        default:
            break;
    }

但编译器告诉:

Expression is not an integer constant expression

如何从 [array count] 生成 const int?

4

2 回答 2

2

正如错误所暗示的那样,案例必须都是常数。您需要一个if语句来检查动态案例:

    int count = [array count];
    switch (someValue) {
        case 0:
            [self foo];
            break;
        default:
            if (someValue == count)
                [self bar];
            break;
    }
于 2012-07-25T15:45:39.937 回答
0
if(some value == 0) {
    [self foo];
} else if (someValue == [array count]) {
    [self bar]
}
于 2012-07-25T15:44:59.853 回答