block的定义和使用

1.block可以用来保存一段代码,或者用来封装一段代码。--->代码段,代码块。
2.block的标志是^
3.block跟函数很像
可以保存代码;
可以有返回 值;
也可以有行参;
调用方式一样;
4.定义一个block
#pragma mark 不带参数的block
void (^outputblock)() = ^{
NSLog(@"------------");
};
outputblock();
}
5.带行参的block
#pragma mark - 带参数的block
int (^sumblock)(int, int) = ^(int a,int b){

return a+b;
};
int sum = sumblock(23,23);
int sum1 = sumblock(1,2);
NSLog(@"%d",sum1);
NSLog(@"%d",sum);


#pragma mark - 输出n条横线
void(^myblock)(int) = ^(int n){
for (int i = 0; i < n; i++) {
NSLog(@"-----------------");
};
};
myblock(10);
6.如果block没有行参,可以省略后边的小括号。
7.使用typedef来定义一个block的类型
typedef int(^Myblock)(int,int);
Myblock sumblock = ^(int a,int b){

return a+b;
}
Myblock minus = ^(int a,int b){
return a-b;
}

8.block可以访问外边的变量,但不可以修改外部的局部变量

原文地址:https://www.cnblogs.com/yinqiang/p/3439427.html