Por que não posso usar minha constante na instrução switch - case no Objective-C? [error = Expressão não é uma expressão constante inteira]
Então, eu tenho um problema ao usar uma variável constante na seguinte instrução switch no Objective-
Eu tenho Constants.h com o seguinte
// Constants.h
extern NSInteger const TXT_NAME;
And Constants.m Como
// Constants.m
#import "Constants.h"
NSInteger const TXT_NAME = 1;
Then in TabBasic.m Estou tentando usar essa constante em uma declaração de caso de mudança:
// 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;
}
}
}
Mas infelizmente, está me dando os dois erros a seguir na linha "case TXT_NAME:":
Expression não é uma expressão constante inteira etiqueta @Case não se reduz a uma constante inteiraAlguém sabe o que estou fazendo de errado? A variável "tag" de um UITextField retorna um NSInteger, então não vejo o problema ...
Obrigado pela ajuda