------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
/*
Block封装了一段代码,可以在任何时候执行
Block的标志: ^
block跟函数很像:
1.可以保存代码
2.有返回值
3.有形参
*/
1 int main() 2 { 3 //定义block变量,没有返回值,没有形参 4 5 //block没有形参时可省略后面的() 6 void (^myblock)() = ^(){ 7 NSLog(@“—————”); 8 NSLog(@“—————”); }; 9 10 int (^sumblock)(int, int) = ^(int a, int b){ 11 return a + b; }; 12 int c = sumblock(10,11); 13 NSLog(@“%d”, c); 14 15 16 //利用typedef定义block类型 17 //typedef int (^MyBlock)(int, int ) 18 19 //可以用MyBlock定义block变量 20 ///MyBlock sumBlock; 21 //sumBlock = ^(int a, int b) { 22 // return a + b; 23 // }; 24 //int c = sumBlock(10,11); 25 26 27 //用Block输出n条横线 28 29 void (^lineBlock)(int) = ^(int n) { 30 for (int i = 0; i<n; i++){ 31 NSLog(@“——————”); 32 } 33 }; 34 35 lineBlock(5); 36 37 38 int x = 10; 39 __block int y = 20; 40 41 void (^block)(); 42 block = ^{ 43 //block内部可以访问外部的变量 44 //NSLog(@“x=%d”, x); 45 //默认情况下,block内部不能修改外面的局部变量 x = 20; 46 //给局部变量加上__block关键字,这个局部变量就可以在block内不修改 47 48 y = 25; 49 50 }; 51 52 block(); 53 54 return 0; 55 }
原文:http://www.cnblogs.com/xbl-hm/p/4953558.html