Tengo los hijos NSMutableArray * en la clase de estructura de datos "Foo" que es la superclase de muchos otros, como "Bar1" y "Bar2". Esa matriz almacena objetos Bar1 y Bar2 para obtener una estructura padres-hijos-recursiva similar a un árbol de las subclases de Foo. Para acceder a los objetos de la matriz, que bucle a través de ellos mediante el bucle foreach en Objective-C:Objective-C NSMutableArray - bucle foreach con objetos de múltiples clases
for(Foo *aFoo in children) {
...
}
Pero a menudo sólo tienen que recorrer los objetos de la matriz que tienen una determinada clase, en este caso quiero realizar una tarea para cada objeto de la clase Bar1 en la matriz niños. El uso de for (Bar1 * anObject in children) vuelve a recorrer todos los objetos y no solo los que tienen la clase Bar1. ¿Hay alguna manera de lograr lo que necesito?
esto puede ser bastante caro para la memoria, pero aparentemente no hay otra manera. Gracias –
no, no cambia la huella de su memoria, solo está leyendo lo que ya está en la memoria – unbeli
En general, si necesita usar 'isKindOfClass:' para diferenciar entre clases en una colección, su patrón de diseño está fuera de la norma. Esto es particularmente cierto si su colección contiene instancias de clases que son completamente de su creación. – bbum