【发布时间】:2011-07-05 15:36:10
【问题描述】:
所以我在 Objective-C 的以下 switch 语句中使用常量变量时遇到了问题。
我有 Constants.h 包含以下内容:
// Constants.h
extern NSInteger const TXT_NAME;
而 Constants.m 为:
// Constants.m
#import "Constants.h"
NSInteger const TXT_NAME = 1;
然后在 TabBasic.m 我试图在 switch-case 语句中使用这个常量:
// TabBasic.m
#import "TabBasic.h"
#import "Constants.h"
... code ...
- (IBAction)saveValue:(id)sender {
if ([sender isKindOfClass: [UITextField class]]) {
UITextField *txtField = (UITextField *) sender;
switch (txtField.tag) {
case TXT_NAME:
NSLog(@"Set property name to: %@", txtField.text);
break;
}
}
}
但不幸的是,它在“case TXT_NAME:”行上给了我以下两个错误:
- 表达式不是整数常量表达式
- 案例标签不会缩减为整数常量
有谁知道我做错了什么? UITextField 的“tag”变量返回一个 NSInteger,所以我看不到问题...
感谢您的帮助!
【问题讨论】:
标签: objective-c tags constants case switch-statement