Ich habe die NSMutableArray * Kinder in der Datenstruktur-Klasse "Foo", die die Oberklasse von vielen anderen ist, wie "Bar1" und "Bar2". Dieses Array speichert Bar1- und Bar2-Objekte, um eine baumartige rekursive Eltern-Kind-Struktur von Unterklassen von Foo zu erhalten. Um die Objekte in dem Array zuzugreifen, ich Schleife durch sie die foreach-Schleife in Objective-C mit:Objective-C NSMutableArray - foreach Schleife mit Objekten aus mehreren Klassen
for(Foo *aFoo in children) {
...
}
Aber oft in der Anordnung durch die Objekte in einer Schleife, die eine bestimmte Klasse, ich brauche nur in diesem Fall Ich möchte eine Aufgabe für jedes Objekt der Klasse Bar1 in den Array-Children ausführen. Die Verwendung von for (Bar1 * anObject in Kindern) durchläuft wiederum ALLE Objekte und nicht nur diejenigen mit der Klasse Bar1. Gibt es eine Möglichkeit, das zu erreichen, was ich brauche?
das kann ziemlich speicher teuer sein, aber anscheinend gibt es keinen anderen Weg. Danke –
nein, es ändert nicht Ihren Speicherabdruck, Sie lesen gerade, was bereits im Gedächtnis ist – unbeli
Im Allgemeinen, wenn Sie 'isKindOfClass:' verwenden müssen, um zwischen Klassen in einer Ansammlung zu unterscheiden, ist Ihr Entwurfsmuster außerhalb der Norm. Dies gilt insbesondere dann, wenn Ihre Sammlung Instanzen von Klassen enthält, die vollständig von Ihnen erstellt wurden. – bbum