首页 > 代码库 > OC--block
OC--block
block用来保存一段代码
block的标志:^
block跟函数很像:
1.可以保存代码
2.有返回值
3.有形参
4.调用方式一样
//定义block变量
void (^myblock)() = ^{
NSLog(@"----------------");
NSLog(@"----------------");
};
//利用block变量调用block内部的代码;
myblock();
int (^sumblock)(int,int) = ^(int a, int b){
return a + b;
};
int c = sumblock(10,11);
/*
指针函数指针
int (*p)(int,int) = sum;
int d = p(10,12);
NSLog(@"%d",d);
*/
/*
block要掌握的东西
1> 如何定义block变量
int (^sumBlock)(int, int);
void (^myBlock)();
2> 如何利用block封装代码
^(int a, int b) {
return a - b;
};
^() {
NSLog(@"----------");
};
^ {
NSLog(@"----------");
};
3> block访问外面变量
* block内部可以访问外面的变量
* 默认情况下,block内部不能修改外面的局部变量
* 给局部变量加上__block关键字,这个局部变量就可以在block内部修改
4> 利用typedef定义block类型
typedef int (^MyBlock)(int, int);
// 以后就可以利用MyBlock这种类型来定义block变量
MyBlock block;
MyBlock b1, b2;
b1 = ^(int a, int b) {
return a - b;
};
MyBlock b3 = ^(int a, int b) {
return a - b;
};
*/
OC--block