Nis*_*ada 4 objective-c switch-statement ios
我想使用以下表达式
-(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不是整数常量表达式]
Tom*_*ton 11
错误expression is not an integer constant expression意味着它所说的:在a中case,值必须是常量,而不是变量.
您可以将声明更改switch为常量:
const int match1=0;
const int match2=1;
Run Code Online (Sandbox Code Playgroud)
或者你可以使用枚举.或者a #define.但是你不能在那里使用非常数变量.
如果您想要标记的案例,则需要ENUM类型
typedef NS_ENUM(int, MyEnum) {
match1 = 0,
match2 = 1
};
- (void)switchCondn:(MyEnum)expression {
switch (expression)
{
case match1:
//statements
break;
case match2:
//statements
break;
default:
// statements
break;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7180 次 |
| 最近记录: |