- As a property:
@property (nonatomic, copy, nullability) returnType (^blockName)(parameterTypes);
- As a method parameter:
- (void)someMethodThatTakesABlock:(returnType (^nullability)(parameterTypes))blockName;
- As an argument to a method call:
[someObject someMethodThatTakesABlock:^returnType (parameters) {...}];
- As a typedef:
typedef returnType (^TypeName)(parameterTypes);
TypeName blockName = ^returnType(parameters) {...};