1.写在方法里作为局部变量
returnType (^blockName)(parameterTypes) = ^returnType(parameters) {...};
- returnType是返回值
- blockName是block名称
- parameterTypes是参数
2.作为类的属性
@property (nonatomic, copy) returnType (^blockName)(parameterTypes)
- returnType是返回值
- blockName是block名称
- parameterTypes是参数
3.作为方法参数
- (void)someMethodThatTakesABlock:(returnType (^)(parameterTypes))blockName;
- returnType是返回值
- blockName是block名称
- parameterTypes是参数
4.调用方法是传入的参数
[self someMethodThatTakesABlock:^returnType (parameters) {...}];
- returnType是返回值
- blockName是block名称
- parameterTypes是参数
5.自定义Block类型
typedef returnType (^TypeName)(parameterTypes);
TypeName blockName = ^returnType(parameters) {...};
- returnType是返回值
- blockName是block名称
- parameterTypes是参数