相关疑难解决方法(0)

整数常量'不会减少为整数'

我用这段代码设置我的常量

// Constants.h
extern NSInteger const KNameIndex;

// Constants.m
NSInteger const KNameIndex = 0;
Run Code Online (Sandbox Code Playgroud)

在导入Constant.h文件的文件中的switch语句中,我有:

switch (self.sectionFromParentTable) {
    case KNameIndex:
        self.types = self.facilityTypes;
        break;
    ...
Run Code Online (Sandbox Code Playgroud)

我在编译时遇到错误:"错误:case标签不会减少为整数常量"

什么想法可能搞砸了?

objective-c

17
推荐指数
3
解决办法
2万
查看次数

表达式不是iOS目标c中的整数常量表达式

我想使用以下表达式

-(void)SwitchCondn{
    int expression;
    int match1=0;
    int match2=1;

    switch (expression)

    {
        case match1:

            //statements

            break;

        case match2:

            //statements

            break;

        default:

           // statements

            break;

    }
Run Code Online (Sandbox Code Playgroud)

但是我得到了

在此输入图像描述

当我研究我发现

In order to work in Objective-C, you should define your constant either like this:
#define TXT_NAME 1
Or even better, like this:
enum {TXT_NAME = 1};
Run Code Online (Sandbox Code Playgroud)

我很久以来一直在使用这种方法.现在我的变量值将在运行时改变,所以我需要以其他方式定义,我不想使用if else所以有任何方式的声明变量其他方式

我接受了以下研究

为什么我不能在Objective-C中的switch-case语句中使用我的常量?[error = Expression不是整数常量表达式]

Objective C switch语句和命名整数常量

Objective C具有case/switch的全局常量

整数常量'不会减少为整数'

objective-c switch-statement ios

4
推荐指数
2
解决办法
7180
查看次数

标签 统计

objective-c ×2

ios ×1

switch-statement ×1