Suppose you have a network method that only uses a single block callback
typedef void (^Handler)(BOOL success, id response, NSError *error);
- (void)makeRequestWithHandler:(Handler)handler;
But you have to make this request dozens of times, and you want to reuse the same failure handler in most cases? Easy, just have a factory function that returns a block:
typedef void (^SuccessHandler)(id response);
typedef void (^ErrorHandler)(NSError *error);