Block
block是变量,存储代码段,
inlineBlock 自动提示block语法。
1>定义block变量
返回值类型 (^block变量名)(行参)=^(行参){};
void (^block)(); //无参数,无返回值
int (^block)(int,int); // 有参数
2>block封装代码
// 无参数,无返回值中间的“()”可以省略
^(){
NSLog(@“无参数,无返回值");
};
^(int a,int b){ // 有参数返回值
return a+b;
};
3>block访问外面变量
默认情况下,block 中的变量只能读取外部变量的值,不能修改;
如果要在block内部修改外部变量的值,在外面变量生命的前面加——block关键字。
4>利用typedef定义block类型
typedef int (^MyBlock)(int,int);
5>block的调用
作为变量引用的时候(void (^)())blockwork(无参数)
block调用之前要判断是否为nil,否则报错。
if(blockwork != nil)
{
blockwork();
}
6>block排序
升序: array = [array sortedArrayUsingComparator:^NSComparisonResult(NSNumber *num1, NSNumber *num2) {
return [num1 compare:num2];
}];
降序:array = [array sortedArrayUsingComparator:^NSComparisonResult(NSNumber *num1, NSNumber *num2) {
return [num2 compare:num1];
}];