You can use a block-based predicate as follows:
NSSet *yourSet = ...; NSPredicate *pred = [NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings) { return [evaluatedObject isKindOfClass:[CircleShape class]]; }]; NSSet *filteredSet = [yourSet filteredSetUsingPredicate:pred];
This will return all instances of CircleShape or subclasses of CircleShape . Use isMemberOfClass if you want only class instances, but not subclasses.
Martin r
source share