J'ai un ensemble d'instances de classe qui ont une variable d'instance BOOL appelée x. Lorsqu'un bouton est cliqué, j'ai besoin que x soit défini sur NO pour toutes les instances, à l'exception de l'instance liée au bouton qui a déclenché la méthode. Un peu comme comment fonctionne un bouton radio.Définir/Réinitialiser les variables d'instance en fonction du bouton de sélection du bouton UIButton
Il est facile de définir toutes les instances de x sur des variables à NO. J'ai besoin d'aide pour déterminer comment définir, par exemple, cInstance.x à YES. myMethod sera utilisé par de nombreux boutons différents pour se rapporter à différentes instances.
Je peux l'écrire avec trois méthodes distinctes que les sélecteurs appellent mais cela crie une mauvaise programmation.
[myButtonA addTarget:self action:@selector(myMethodA:) forControlEvents:UIControlEventTouchUpInside];
[myButtonB addTarget:self action:@selector(myMethodB:) forControlEvents:UIControlEventTouchUpInside];
[myButtonC addTarget:self action:@selector(myMethodC:) forControlEvents:UIControlEventTouchUpInside];
- (void)myMethodA:(id)sender {
NSArray *objects = [NSArray arrayWithObjects:aInstance, bInstance, cInstance, dInstance, eInstance, nil];
int i = [objects count];
while (i--) {
MyClass *selectedInstance = [objects objectAtIndex:i];
selectedInstance.x = NO;
}
aInstance.x = YES;
}
- (void)myMethodB:(id)sender {
NSArray *objects = [NSArray arrayWithObjects:aInstance, bInstance, cInstance, dInstance, eInstance, nil];
int i = [objects count];
while (i--) {
MyClass *selectedInstance = [objects objectAtIndex:i];
selectedInstance.x = NO;
}
bInstance.x = YES;
}
- (void)myMethodC:(id)sender {
NSArray *objects = [NSArray arrayWithObjects:aInstance, bInstance, cInstance, dInstance, eInstance, nil];
int i = [objects count];
while (i--) {
MyClass *selectedInstance = [objects objectAtIndex:i];
selectedInstance.x = NO;
}
cInstance.x = YES;
}
Maintenant, je suppose que je pourrais créer une nouvelle méthode pour réinitialiser toutes les variables de x à NO, ont alors une méthode distincte pour chaque bouton qui définit une variable spécifique OUI mais ce genre de chose ne devrait exiger un total méthode .