黑马程序员技术交流社区
标题:
block访问外部变量*
[打印本页]
作者:
zlc
时间:
2015-7-13 15:04
标题:
block访问外部变量*
(1)在block内部可以访问block外部的变量
在block内 部可以使用外部变量
但是注意:这是新的内存空间变量
(2)局部变量在栈区
在 block中使用局部变量,会将局部变量拷贝一份在block中,block一般在堆区
例如:
int m=10;
void (^myBlock)()=^{
NSLog(@"m=%d",m);
};
myBlock();
当定义block的时候,block会把外部变量的值以const的方式(在block中m的值不能被修改)复制一份,存放到block所在的内存中
但是在代码块内部定义的变量会被保存到栈区。
注意:若定义const m=10,则不能再给m赋值
__block int m=10;//不再以const的方式拷贝
void (^myBlock)()=^{
m=100;
NSLog(@"m=%d",m);
};
myBlock();
打印出m=10因为0,
作者:
zlc
时间:
2015-7-13 15:08
补充:在block中可以直接修改全局变量
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2