A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jsh_513 中级黑马   /  2015-9-18 21:40  /  680 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

用来封装和在运行中保存代码,保证能随时随地调用内部代码,效率高。
定义:
1>        两个参数
int (^SumBlock) (int,int) = ^(int a,int b){
return a+b;//定义一个block类型变量,求和
}
2>        无参数
int (^SumBlock) () = ^(){
return 99;
}
3>        无参数省略
int (SumBlock) () = ^{
return 99;
}
4>        利用typedef定义block类型
typedef int (^MyBlock) (int,int);
5>        注意
int main()
{
    int a = 10;
    __block int b = 20;
   
    void (^block)();
    block = ^{
    // block内部可以访问外面的变量
    //NSLog(@"a = %d", a);
        
    // 默认情况下,block内部不能修改外面的局部变量
    // a = 20;
    // 给局部变量加上__block关键字,这个局部变量就可以在block内部修改
        b = 25;
    };
    block();
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马