A veces me gusta organizar elementos IB en NSArray
s principalmente para ayudarme a organizar mis elementos. Muy a menudo, las diferentes clases de objetos forman el mismo conjunto entre sí. Si bien esto es una forma conveniente de organización, me parece que no puede envolver mi cabeza alrededor de eso que si tengo una matriz de esta manera:for loops - ¿Tipo de objeto descartado?
NSArray *array = [NSArray arrayWithObjects:((UITextField *)textField), ((UISegmentedController *)segmentedController), nil];
¿Por qué me sale "no responde al selector" mensajes cuando poner un bucle for
así:
for (UITextField *text in array) {
[text setText:@""];
}
El bucle for
parece estar superado objetos que no son de la clase UITextField
.
¿Cuál es el punto de declarar la clase del objeto si todos los objetos en la matriz especificada se pasan a través del ciclo?
EDITAR Sólo como referencia, así es como yo estoy manejando a partir de ahora:
for (id *object in array) {
if ([object isMemberOfClass:[UITextField class]]) {
foo();
} else if ([object isMemberOfClass:[UISegmentedController class]) {
bar();
}
}
'id' ya es un tipo de puntero. 99.9% del tiempo, quiere usar el tipo 'id' simple, no un puntero a 'id *'. –