代码块是将一块代码像对象一样对待,并且传递给其他方法或函数。代码块支持在代码中定义函数对象;
//代码块的声明和实现
void(^aBlock)(NSString *x);
aBlock = ^(NSString *x){NSLog(@"%@",x);};
//代码块的调用
aBlock(@"Rick");
//double getArea width height
//声明
double(^getArea)(double width,double height);
//实现
getArea = ^(double width,double height){
double area = width * height;
return area;
};
//调用
double area = getArea(5,10);
NSLog(@"area = %.1f",area);
//在block中,使用全局变量和局部变量,在开头定义
//使用全局变量
void(^myBlock)() = ^(){
global++;
NSLog(@"%d",global);
};
myBlock();
__block int i = 1;//使用局部变量需要加__block
void(^star)() = ^(){
i++;
NSLog(@"%d",i);
};
star();