I found the best answer here
The answer is to replace the whole thing with this:
#import <objc/message.h>
- (BOOL) numbersPassedAllTests:(NSArray *)numbers {
NSInteger count = [TESTS count];
for (int i=0; i<count; i++) {
NSString *aMethodName = TESTS[i];
SEL selector = NSSelectorFromString(aMethodName);
BOOL (*BOOLMsgSend)(id, SEL, id) = (BOOL (*)(id, SEL, id)) objc_msgSend;
BOOL failed = BOOLMsgSend(self, selector, numbers);
if (failed) {
return NO;
}
}
return YES;
}
simply, beautiful and at least 30% faster in my tests.