Block
objective-c中可以用block代替delegate使用,更简洁灵活
一、相关概念
声明:对编译器说:这里我有一个函数叫function() 让编译器知道这个函数的存在。
定义:具体就是函数的实现过程 写明函数体。
调用:调用一个函数 -_-|||
二、 形式
一、带参数无返回值
//=左边:声明 =右边:定义
void(^blockFunc)(int)=^(int n){
NSLog(@"选择了什么...");
}
//调用
blockFunc(6);
二、带参数返回值
//=左边:声明 =右边:定义
int (^blockFunc)(int,int)=^(int n1,int n2){
return n1+n2;
}
//调用
NSLog(@"%d",blockFunc(100,20));
三、不带参数和返回值
void(^blockFunc)()=^(){
NSLog(@"no parameter no return");
};
四、typedef 定义block 类型 (和指向函数的指针很像)
//blockFunc 是typedef定义的别名
typedef int(^blockFunc)(int,int);
//相当于声明 int(^block1)(int,int);int(^block2)(int,int);
blockFunc block1,block2;
//定义
block1=^(int a,int b){
return a-b;
};
block2=^(int a,int b){
return a+b;
};
}
三、应用
(未完待续)