Uma vez que existem algumas maneiras de escrever blocos Objective-C, aqui estão alguns trechos para não esquecê-los.
Sem artumentos:
void (^block1)() = ^{
};
block1();
Com alguns argumentos:
NSInteger (^block2)(NSInteger, NSObject *) = ^(NSInteger arg1, NSObject *arg2) {
return arg1;
};
block2(0, nil);
Com typedef
typedef void (^Block3)(id, NSError *);
typedef void (^Block4)(id response, NSError *error);
Block4 block4 = ^(id response, NSError *error) { };
Com @property
@interface Object : NSObject
@property (nonatomic, copy) void (^block5)(id, NSError *);
@end