gpt4 book ai didi

objective-c - 整型常量做 'not reduce to an integer'

转载 作者:太空狗 更新时间:2023-10-30 03:15:32 24 4
gpt4 key购买 nike

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

// Constants.h
extern NSInteger const KNameIndex;

// Constants.m
NSInteger const KNameIndex = 0;

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

switch (self.sectionFromParentTable) {
case KNameIndex:
self.types = self.facilityTypes;
break;
...

我在编译时遇到这样的错误:“错误:case 标签不会缩减为整数常量”

有什么想法可能会搞砸吗?

最佳答案

对于 C/C++ 和 Objective-C,case 语句必须在编译时具有固定值 - “减少为整数(读取值)

您的常量不是真正的“常量”,因为它是一个变量,我想它可以通过指针更改 - 即 &KNameIndex

通常将常量定义为enum

enum {
KNameIndex = 0,
kAnotherConstant = 42
};

如果您使用 C++ 或 Objective-C++(以 .mm 作为文件扩展名),您可以使用 const 语句作为

const int KNameIndex = 0;

关于objective-c - 整型常量做 'not reduce to an integer',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/554419/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com