J'aime parfois organiser les éléments de l'IB en NSArray
est principalement destiné à m'aider à organiser mes éléments. Le plus souvent, différentes classes d'objets se retrouvent dans le même tableau. Bien que ce est un moyen pratique d'organisation, je n'arrive pas à comprendre pourquoi si j'ai un tableau comme celui-ci :
NSArray *array = [NSArray arrayWithObjects:((UITextField *)textField), ((UISegmentedController *)segmentedController), nil];
Pourquoi j'obtiens des messages "Ne répond pas au sélecteur" lorsque je mets un for
boucle comme celle-ci :
for (UITextField *text in array) {
[text setText:@""];
}
En for
semble recevoir des objets qui ne sont pas de la classe UITextField
.
Quel est l'intérêt de déclarer la classe de l'objet si tous les objets du tableau spécifié sont passés dans la boucle ?
EDIT À titre de référence, voici comment je procède pour l'instant :
for (id *object in array) {
if ([object isMemberOfClass:[UITextField class]]) {
foo();
} else if ([object isMemberOfClass:[UISegmentedController class]) {
bar();
}
}