As alocal variable:
returnType(^blockName)(parameterTypes) = ^returnType(parameters) {...};
As aproperty:
@property (nonatomic, copy,nullability)returnType(^blockName)(parameterTypes);
As amethod parameter:
- (void)someMethodThatTakesABlock:(returnType(^nullability)(parameterTypes))blockName;
As anargument to a method call:
[someObject someMethodThatTakesABlock:^returnType(parameters) {...}];
As atypedef:
typedefreturnType(^TypeName)(parameterTypes);
TypeNameblockName = ^returnType(parameters) {...};