C 【block本质-block内部可以一直引用的变量类型】
来源:互联网 发布:sql注入攻击举例 编辑:程序博客网 时间:2024/04/27 20:30
#import <Foundation/Foundation.h>// 方法的声明void test1();void test2();void test3();void test4();int main(int argc, const char * argv[]) { @autoreleasepool { // test1();// test2();// test3(); test4(); } return 0;}int age2 = 18;void test4(){ void (^block4)() = ^{ NSLog(@"%d", age2); // 输出结果为21。block内部也是可以一直引用全局变量的 }; age2 = 21; block4();}// block内部能够一直引用被static修饰的变量void test3(){ static int age = 10; void (^block3)() = ^{ NSLog(@"----age=%d", age); // 输出结果为20。与test2方法中的结论类似。被static修饰的变量block也是能一直引用的 }; age = 20; block3();}// block内部能够一直引用被__block修饰的变量void test2(){ __block int age = 10; void (^block2)() = ^{ NSLog(@"-----age-----%d", age); // 因为age是被__block修饰的变量,所以说age的改变block内是一直知道的,所以输出结果是30 }; age = 30; block2();}// 普通的局部变量,block内部只会引用它初始的值(block定义那一刻),不能跟踪它的改变void test1(){ int age = 10; // age = 20; // 如果此行打开,那么输出的结果自然是20,因为block定义时的age是20 void (^block1)() = ^{ NSLog(@"-----age-----%d", age); // 相当于 NSLog(@"-----age-----%d", 10); 所以输出结果是10 }; age = 30; // 不会影响block中的值 block1();}
1 0
- C 【block本质-block内部可以一直引用的变量类型】
- block内部的引用
- Objective-c - 在block内部访问变量
- block引用局部变量
- block 对外部引用变量的处理
- block 对外部引用变量的处理
- 关于block引用外部变量
- Block的循环引用
- Block的循环引用
- 循环引用的block
- block的循环引用
- Block的循环引用
- Block的循环引用
- block的循环引用
- block的循环引用
- block的循环引用
- OC 重点block-------2-------block内部访问外部变量的问题
- block:解决成员变量的循环引用的问题
- ant安装、环境变量配置及验证
- 2015年第六届蓝桥杯试题(C/C++本科B组)
- windows下gun-gcc的一些编译参数
- PageSlidingTab的改进,项目中可以直接使用。
- java.lang.OutOfMemoryError:PermGen Space错误解决方法
- C 【block本质-block内部可以一直引用的变量类型】
- okhttp的简单介绍(二)之简单封装
- HBase 系统架构
- 使用Eclipse签名打包,项目出现错误怎么办?
- 【卡特兰数】HDU2067小兔的棋盘
- 程序员必知8大排序3大查找
- 20160309 SOHU实习面试
- 启用apache,发现80端口被占用【已解决】
- C++ function、bind以及lamda表达式 http://blog.csdn.net/augusdi/article/details/11771699