Skip to content

Instantly share code, notes, and snippets.

@preble
Created August 12, 2010 15:08
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save preble/521116 to your computer and use it in GitHub Desktop.
Save preble/521116 to your computer and use it in GitHub Desktop.
#import "NSString+ConcurrentEnumeration.h"
@implementation NSString (ConcurrentLineEnumeration)
- (void)enumerateConcurrentlyWithOptions:(NSStringEnumerationOptions)options
usingBlock:(void (^)(NSString *substring))block
{
dispatch_group_t group = dispatch_group_create();
[self enumerateSubstringsInRange:NSMakeRange(0, [self length])
options:options
usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclRange, BOOL *stop)
{
dispatch_group_async(group, dispatch_get_global_queue(0, 0), ^ {
block(substring);
});
}];
dispatch_group_wait(group, DISPATCH_TIME_FOREVER);
}
@end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment