So I have an issue with using a constant variable in the following switch statement in Objective-C.
I have Constants.h with the following:
// Constants.h
extern NSInteger const TXT_NAME;
And Constants.m as:
// Constants.m
#import "Constants.h"
NSInteger const TXT_NAME = 1;
Then in TabBasic.m I am trying to use this constant in a switch-case statement:
// 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;
}
}
}
But unfortunately it is giving me the following two errors on the "case TXT_NAME:" line:
- Expression is not an integer constant expression
- Case label does not reduce to an integer constant
Does anyone know what I'm doing wrong? The "tag" variable of a UITextField returns an NSInteger, so I don't see the issue...
Thanks for your help!
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…