Como mencionó jtbandes, puede escribir un método NSArray
como categoría si va a hacer esto mucho. Algo como esto:
@interface NSArray (FindClass)
- (NSMutableArray *) findObjectsOfClass:(Class)theClass
@end
continuación
@implementation NSArray (FindClass)
- (NSMutableArray *) findObjectsOfClass:(Class)theClass {
NSMutableArray *results = [[NSMutableArray alloc] init];
for (id obj in self) {
if ([obj isKindOfClass:theClass])
[results addObject:obj];
}
return [results autorelease];
}
@end
entonces cuando desee utilizarlo apenas hacer:
NSMutableArray *objects = [myArray findObjectsOfClass:[FooType class]];
que debe contener todos los objetos de la clase especificada.
Descargo de responsabilidad: no probado, sorry si algo anda mal:/