OC block小记

 1 // block语法(可定义在任意位置)
 2         //1.定义
 3         int (^Sum)(int, int) = ^(int a, int b){return a+b;};
 4         
 5         //2.使用
 6         NSLog(@"sum = %d", Sum(10, 20));
 7         
 8         //3.将block定义成类型
 9         typedef int(^myBlock)(int, int);
10         //4.定义block类型的变量
11         myBlock sub = ^(int a, int b){return a-b;};
12         myBlock mul = ^(int a, int b){return a*b;};
13         
14         NSLog(@"sub=%d", sub(10, 20));
15         NSLog(@"mul = %d", mul(10, 20));
16         
17         //5.block和局部变量的关系
18         //5.1 在block中能够访问局部变量
19         int a = 20;
20         int b = 10;
21         void(^myBlock2)() = ^(){
22             NSLog(@"a+b = %d", a+b);
23         };
24         myBlock2();
25         //5.2 在block中不能修改局部变量的值
26         void (^myBlock3)() = ^(){
27             //a = 30;     //error:普通变量不能修改
28         };
29         //5.3 在block中能够修改用__block修饰的变量的值
30         __block int c = 30;
31         void (^myBlock4)() = ^(){
32             c = 40;
33             NSLog(@"c = %d", c);
34         };
35         myBlock4();
相关文章
相关标签/搜索