Block

 1> 如何定义block变量

 int (^sumBlock)(int, int);

 void (^myBlock)();

 2> 如何利用block封装代码

 ^(int a, int b) {

    return a - b;

 };

 ^() {

    NSLog(@"----------");

 };

  ^ {

    NSLog(@"----------");

 };

  3> block访问外面变量

 * block内部可以访问外面的变量

 * 默认情况下,block内部不能修改外面的局部变量

 * 给局部变量加上__block关键字,这个局部变量就可以在block内部修改

  4> 利用typedef定义block类型

 typedef int (^MyBlock)(int, int);

 // 以后就可以利用MyBlock这种类型来定义block变量

 MyBlock block;

 MyBlock b1, b2;

 b1 = ^(int a, int b) {

    return a - b;

 };

 MyBlock b3 = ^(int a, int b) {

    return a - b;

 };

5> 利用Block来代替代理

posted @ 2014-08-25 21:59  树籽  阅读(167)  评论(0编辑  收藏  举报