黑马程序员技术交流社区

标题: block 访问外部变量 [打印本页]

作者: littp    时间: 2015-12-29 23:21
标题: block 访问外部变量
@autoreleasepool{
int m = 10;
NSLog(@"1:m = %d",m);
NSLog(@"2:m addr = %p");  //栈区

//定义变量,并且赋值
//当定义block的时候,block会吧外部变量的值赋值一份
//存放到block的内存中
void (^myBlock)()=^{
NSLog(@"5:m  addr = %p",m);   //堆区
NSLog(@"3Lin block m = %d");   
}

NSLog(@"4:m addr =%p",&m);    //栈区
//调用
myBlock();
}

注意:block中的外部变量不可以修改,如果想修改,需要在外部定义的时候前边加上 __block






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2