Skip to content

Instantly share code, notes, and snippets.

@peteb
Created October 1, 2013 14:50
Show Gist options
  • Save peteb/6779698 to your computer and use it in GitHub Desktop.
Save peteb/6779698 to your computer and use it in GitHub Desktop.
Useful method for grouping items in an array
@implementation NSArray (FunctionalKit)
- (NSDictionary *)collectWithBlock:(id (^)(id value)) valueIdentifier {
NSMutableDictionary *dict = [NSMutableDictionary new];
for (id object in self) {
id ident = valueIdentifier(object);
NSMutableArray *array = [dict objectForKey:ident];
if (!array) {
array = [NSMutableArray new];
[dict setValue:array forKey:ident];
}
[array addObject:object];
}
return [NSDictionary dictionaryWithDictionary:dict];
}
@end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment