BLOCK块
//block块(数据类型):封装了⼀段具有特定功能的代码段
///函数有函数名,block是没有名字的,也可以叫做匿名函数;函数不能做参数传递,block可以作为
参数传递
//形式:
//调⽤
// block变量名(参数列表)
//diyBlock是给int(^)(int a,int b)这种block类型定义的⼀个新名字,以后我们使⽤diyBlock就表示
int(^)(int a,int b)这个类型
typedef int(^diyBlock)(int a,int b);
int main(int argc, const char * argv[]) {
@autoreleasepool {
diyBlock addBlock = ^(int a,int b){
return a+b;
};
diyBlock jianblock = ^(int a,int b){
return a-b;
};
/*
返回值类型 (^block变量名)(参数列表) = ^(参数列表){
代码段
return(如果返回值类型不是void就必须将返回值return出去)
}
*/
}
return 0;
}
// ⽆参⽆返
void demo0(){
// ⽆参⽆返的block(写⼀个block,⽤for循环打印三句hello World)
// 定义⼀个block
void (^myBlock)() = ^(){
for (int i = 0; i <= 2; i++) {
NSLog(@"Hello World");
}
};
// 调⽤⼀个block
myBlock();
}
//这是⼀个有参⽆返的block
/*
void (^block名)(参数列表) = ^(参数列表){}
*/
void demo2(){
// 定义⼀个block,⽤for循环打印n次hello World,n⽤键盘输⼊
void (^nBlock)(int n) = ^(int n){
for (int i = 0; i