黑马程序员——OC语言中的block数据类型

来源:互联网 发布:青山大禹水利软件 编辑:程序博客网 时间:2024/04/29 05:39

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------


1. block用来封装一段代码,可以在任何时候执行,建议多用block

2. block的标识是^

3. block跟函数很类似:

 (1)都可以保存代码

 (2)都有返回值

 (3)都有形参

 (4)调用方式一样

4. block的定义

 (1)不带参数,无返回值的block

         void(^myblock)()=^{

            NSLog[@"----------"];

         };

        调用:myblock()

 (2)带参数,有返回值的block

         int(^sumblock)(int , int)=^(int a , int b){

          return a+b;

        };

        调用:int c =sumblock(10,11)

5. typedef定义block类型

    typedef int(^Myblock)(int ;int);//定义了一个Myblock类型

    Myblock sumblock=^(int a , int b){ return a+b;};

    Myblock minusblock=^(int a , int b){ return a-b;};

    调用:sumblock(10,9)

              minusblock(10,8)

6block访问外面变量

 (1)block内部可以访问外面的变量

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

 (3)给局部变量加上_block关键字,这个局部变量就可以在block内部修改

         比如_block int b=20   在block内部就可以修改b






0 0
原创粉丝点击