1.作为一个局部变量:
returnType (^blockName)(parameterTypes) = ^returnType(parameters) {...};
int (^myBlock)(int,int) = ^int(int a,int b){
return a + b;
};
2.作为属性
//@property (nonatomic, copy) returnType (^blockName)(parameterTypes);
@property (nonatomic,copy) float (^myBlock2)(float a,int b);
3.作为方法
- (void)propertyObjBlock:(int (^)(int a,int b))myBlock3;
4.调用
__block int m =5, n = 3;
PerportyBlock *perportyBlcok = [[PerportyBlockalloc] init];
[perportyBlcok propertyObjBlock:^int(int a,int b) {
return m + n;
}];
5.类型代替
//写一个block类型名为BL
typedef void(^BL)(NSMutableDictionary *dic);
用BL类型声明一个block 属性 (一定要使用copy)
@property (nonatomic, copy)BL block;
也可以用BL类型直接写一个block