Declare a block method parameter without using a typedef
- ( void )myMethodTakingPredicate: ( BOOL ( ^ )( int ) )predicate
This is how it goes, for example...
[self smartBlocks:@"Pen" youSmart:^(NSString *response) { NSLog(@"Response:%@", response); }];- (void)smartBlocks:(NSString *)yo youSmart:(void (^) (NSString *response))handler { if ([yo compare:@"Pen"] == NSOrderedSame) { handler(@"Ink"); } if ([yo compare:@"Pencil"] == NSOrderedSame) { handler(@"led"); }}
As a method parameter:
- (void)someMethodThatTakesABlock:(returnType (^)(parameterTypes))blockName;