常用block格式备忘
Block的模式
1.无参数无返回值的Block
void (^emptyBlock)() = ^(){
NSLog(@"无参数,无返回值的Block");
};
emptyBlock();
2.有参数无返回值的Block
void (^sumBlock)(int ,int ) = ^(int a,int b){
NSLog(@"%d + %d = %d",a,b,a+b);
};
/**
* 调用这个sumBlock的Block,得到的结果是20
*/
sumBlock(10,10);
3.有参数有返回值的Block
NSString* (^logBlock)(NSString *,NSString *) = ^(NSString * str1,NSString *str2){
return [NSString stringWithFormat:@"%@%@",str1,str2];
};
//调用logBlock,输出的是 我是Block
NSLog(@"%@", logBlock(@"我是",@"Block"));
Block结合typedef使用
#import <UIKit/UIKit.h>
@interface ViewController2 : UIViewController
/**
* 定义了一个changeColor的Block。这个changeColor必须带一个参数,这个参数的类型必须为id类型的
* 无返回值
* @param id
*/
typedef void(^changeColor)(id);
/**
* 用上面定义的changeColor声明一个Block,声明的这个Block必须遵守声明的要求。
*/
@property (nonatomic, copy) changeColor backgroundColor;
@end
vc.backgroundColor = ^(UIColor *color){
self.view.backgroundColor = color;
};
****************************************************************************************************************************
做属性
@property (nonatomic, copy) void(^colorBlock)(UIColor *color);
浙公网安备 33010602011771号