Это то, как вы определяете переменную, которая будет блоком или в некоторых других случаях указатели на функции, как в c.
int (*pt2Function)(float, char, char) = NULL;
if (pt2Function)
pt2Function(5.0f, 'a', 'b');
NSArray* array = [NSArray arrayWithObjects:@"a",@"b", nil];
void(^enumerateBlock)(id,NSUInteger,BOOL*) = ^(id obj, NSUInteger idx, BOOL *stop) {
// some code
};
[array enumerateObjectsUsingBlock:enumerateBlock];
// OR
[array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
// inline block
}];
// using a typedef for code neatness
typedef void(^typedefBlockVar)(id,NSUInteger,BOOL*);
typedefBlockVar myEnumrateBlock = ^(id obj, NSUInteger idx, BOOL *stop) {
// some code
};
[array enumerateObjectsUsingBlock:myEnumrateBlock];