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!