Привет, Гари! Я обычно выбираю подобный подход, хотя я предпочитаю использовать целочисленные константы вместо «сырых» чисел. Вот пример:
const int VIEW_TAG_A_SWITCH = 1;
const int VIEW_TAG_OTHER_SWITCH = 2;
- (IBAction)switchChanged:(UISwitch*)senderSwitch {
switch (senderSwitch.tag) {
case VIEW_TAG_A_SWITCH:
// do something
break;
case VIEW_TAG_OTHER_SWITCH:
// do something else
break;
}
}
Это делает код более информативным и помогает вам справляться с ситуациями, когда вам по какой-то причине необходимо изменить значение тега UIView (таким образом вы изменяете его только один раз в своем пике и один раз в коде).
Также очень удобно использовать перечисления, когда вам нужно работать с группой элементов управления. Вот пример группы кнопок с одиночной выборкой (что-то похожее на то, что <input type="option" />
):
enum GenderOptionButtons {
kMaleGenderOptionButton = 10,
kFemaleGenderOptionButton,
kUndefinedGenderOptionButton,
NUM_GENDER_OPTION_BUTTONS
}
- (IBAction)buttonDidTouchUpInside:(UIButton *)senderButton {
for (int i = kMaleGenderOptionButton; i < NUM_GENDER_OPTION_BUTTONS; i ++) {
[(UIButton *)[self.view viewWithTag:i] setSelected:NO];
}
senderButton.selected = YES;
}