Skip to content

Instantly share code, notes, and snippets.

@atnan
Created July 15, 2009 13:05
Show Gist options
  • Save atnan/147686 to your computer and use it in GitHub Desktop.
Save atnan/147686 to your computer and use it in GitHub Desktop.
@implementation NSArray(Filtering)
- (NSArray*)arrayByMappingArrayUsingSelector:(SEL)selector, ... {
NSInvocation* invocation;
va_list arguments;
if (selector && [self lastObject]) {
va_start(arguments, selector);
invocation = [NSInvocation invocationUsingSelector:selector onTarget:[self lastObject] argumentList:arguments];
va_end(arguments);
}
NSMutableArray *filteredArray = [NSMutableArray array];
BOOL returnValue;
for(id object in self) {
[invocation invokeWithTarget:object];
[invocation getReturnValue:&returnValue];
if(ret) [filteredArray addObject:object];
}
return filteredArray;
}
@end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment