Итак, у меня проблема с использованием постоянной переменной в следующем операторе switch в Objective-C.
У меня есть Constants.h со следующим:
// Constants.h
extern NSInteger const TXT_NAME;
А Константы.м как:
// 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:" мне выдаются следующие две ошибки:
- Выражение не является целочисленным константным выражением
- Метка регистра не сводится к целочисленной константе
Кто-нибудь знает, что я делаю не так? Переменная «tag» UITextField возвращает NSInteger, поэтому я не вижу проблемы ...
Спасибо за вашу помощь!