Blocks-基础

1. Block 语法

  ^ 返回值类型 参数列表 表达式

    如: ^ int (int count) {return count + 1}

  返回值类型可以省略。

    如: ^ (int count) {return count + 1}

  如果参数列表为空,参数列表也可以省略。

    如: ^  {printf("Blocks\n");}

 2. Block类型变量:

  类似于函数指针定义方式:

int (^blk) (int) = ^ (int count) {return count + 1};

  相同类型的Block变量可相互赋值。

  函数形式参数可以使用Block变量。

  可以讲Block变量作为函数返回值。

3. 截取自动变量及__block说明符

  自动变量的截取只能保存执行Block语法瞬间的值。保存后不能改写。

{
    __block int val = 0;
    void (^blk) (void) = ^ {
      val = 1;      
        };

    bulk();

    printf("val = %d", val);
}

// 输出:val = 1

4. 并没有实现对C语言数组的截取

const char test[] = "hello";    // Error, 可以使用指针代替
   void (^blk) (void) = ^ {
        printf("%c\n", text[2]);
    };  
 }

 

posted @ 2016-02-19 14:07  若离相惜  阅读(146)  评论(0)    收藏  举报