如何在OC中声明一个block?
作为一个本地变量:objc
returnType (^blockName)(parameterTypes) = ^returnType(parameters) {...};
作为一个属性:
@property (nonatomic, copy, nullability) returnType (^blockName)(parameterTypes);
作为一个方法参数:
- (void)someMethodThatTakesABlock:(returnType (^nullability)(parameterTypes))blockName;
作为参数传递:
[someObject someMethodThatTakesABlock:^returnType (parameters) {...}];
作为自定义类型:typedef
typedef returnType (^TypeName)(parameterTypes);
TypeName blockName = ^returnType(parameters) {...};