Veri tabanı sınıfındaki "Foo" adlı NSMutableArray * çocuğuna sahip olduğum, "Bar1" ve "Bar2" gibi bir çok sınıfın üst sınıfı. Bu dizi, Bar1 ve Bar2 nesnelerini Foo'dan alt sınıfların ağaç benzeri özyinelemeli alt yapısını elde edecek şekilde depolar. Objective-C foreach döngüsü kullanarak içlerinden ben döngü, dizideki nesneleri erişmek için:Objective-C NSMutableArray - çoklu sınıf nesnelerine sahip foreach döngüsü
for(Foo *aFoo in children) {
...
}
Ama çoğu zaman sadece bu, belli bir sınıf var dizide nesneler aracılığıyla döngü gerekir vaka Ben dizi çocuklarda Bar1 sınıfının her nesne için bir görev yapmak istiyorum. (Bar1 * anObject öğesinde) için kullanıldığında, yalnızca TÜM nesnelerle değil, yalnızca Bar1 sınıfı olanlarla döngülenir. İhtiyacım olanı elde etmenin bir yolu var mı?
Bu oldukça bellek pahalı olabilir, ancak görünüşe göre başka yolu yoktur. Teşekkürler –
hayır, bellek ayak izinizi değiştirmiyor, sadece bellekte neler olduğunu okuyorsunuz – unbeli
Genelde, bir koleksiyondaki sınıflar arasında ayrım yapmak için 'isKindOfClass:' öğesini kullanmanız gerekiyorsa, tasarım deseniniz normalin dışında. Koleksiyonunuz tamamen sizin oluşturduğunuz sınıfların örneklerini içeriyorsa, bu özellikle doğrudur. – bbum