// Block的语法
// 1. 无返回值无参数
// 定义了一个block的变量
// int a = 0;
void(^block1)(void) = ^(void){
NSLog(@"Block");
};
// 使用block
block1();
NSLog(@"%@", block1);
// 为什么使用copy ?
// block在开始创建的时候, 内存被分配到全局区(Global)
// block在代码中使用了外部变量,内存被转移到栈区(Stack)
// 使用copy 拷贝到堆区(Malloc)
// 2.无返回值有参数
// 返回值 (^ 变量名)(参数类型1 参数名, 参数类型2 参数名...) = ^(参数类型1 参数名, 参数类型2 参数名){ 要执行的代码 };
void(^block2)(int i, NSString *name) = ^(int i, NSString *name){
NSLog(@"%@打了 %d 次", name, i);
};
block2(10, @"喝喝");
// 3.有返回值无参数
int(^block3)(void) = ^(void){
return 20;
};
NSLog(@"%d", block3());
// 4.有返回值有参数
int(^block4)(int a, int b) = ^(int a, int b){
return a + b;
};
NSLog(@"%d", block4(10, 20));
iOS Block的语法
最新推荐文章于 2020-04-07 20:27:28 发布