黑马程序员技术交流社区
标题: block概念及使用 [打印本页]
作者: L503254118 时间: 2015-10-12 08:02
标题: block概念及使用
最简单的定义格式:void(^block名)()=^{代码块;}; //无参无返回值
使用:block名();
int(^myBlock)(int)(int)=^(int x)(int y){
return x+y;
};
block的typedef:typedef 返回值类型(^新别名)(参数类型表);
block访问外部变量:block会把外部变量以const的方式复制一份存在block的内存中
int m=10;
void(^myBlock)()=^{
NSLog(@"1m addr =%p",&m);//存在堆区
NSLog(@"2m=%d",m);
};
myBlock();
NSLog(@"3m addr =%p",&m);//存在栈区
NSLog(@"4m=%d",m);
注意:block可以修改全局变量,不可以修改局部变量,如果想要修改,需要在定义变量的时候,前面+“__block”,如果在block内部定义的变量是存在栈区。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |